.Net,WebClient,DownloadString因一个站点而失败("基础连接已关闭......")

时间:2015-09-25 06:48:30

标签: .net ssl webclient

我以类似的方式使用.Net(Framework 3.5)访问许多网站以获取数据(用于维基百科)。现在我遇到了一个我无法访问的网站。我得到一个例外"基础连接已关闭"。该网站使用SSL(https),但我不知道这是否会引发问题。我已经阅读了许多帖子并尝试了许多建议,但对我来说没有任何作用。我也试过OpenRead / ReadToEnd,它也失败了。我必须承认,我对HTTP的了解非常有限。

该网站为https://www.infoflora.ch

非常欢迎任何建议!

JER

这是我的代码示例:

class WebClientDBLink : WebClient
{
    public WebClientDBLink()
    {
        UseDefaultCredentials = true;
        Encoding = Encoding.UTF8;
        Headers.Add("Content-Type", Bot.webContentType);
        Headers.Add("User-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
    }

    protected override WebRequest GetWebRequest(Uri address)
    {
        HttpWebRequest wr = (HttpWebRequest)base.GetWebRequest(address);
        wr.CookieContainer = new CookieContainer();
        // wr.KeepAlive = false;
        // wr.Timeout = 100000;
        return wr;
    }
}
...

    String sUrl = "https://www.infoflora.ch/de/flora/2906-.html"; // just one exampl

    String sText = "";

    try
    {

        ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;
        // ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;

        Uri res = new Uri(sUrl);
        WebClient wc = new WebClientDBLink();
        sText = wc.DownloadString(res);
    }
    catch (Exception e)
    {
        ...
        return false;
    }

1 个答案:

答案 0 :(得分:0)

此:

  

该网站使用SSL(https),但我不知道这是否会引发问题。

与您的评论相结合:

  

是的,它在Windows XP上运行

给出一个提示:)

https://infoflora.ch处的端点仅支持相当现代的密码套件(CBC模式下的AES和CAMELLIA以及AES-GCM) - Windows XP都不支持这些密码套件。

如果您希望这样做,请使用Windows 7或更高版本(您知道不再支持Windows XP吗?)