Я обращаюсь ко многим сайтам с использованием .Net (Framework 3.5) аналогичным образом для получения данных (используемых для Википедии) , Теперь я столкнулся с одним сайтом, к которому я не могу получить доступ. Я получаю исключение «Основное соединение было закрыто». Сайт использует SSL (https), но я не знаю, вызвало ли это проблему. Я прочитал много тем и попробовал много предложений, но пока ничего не работало. Я также пробовал OpenRead/ReadToEnd, он тоже не работает. Должен признаться, что мои знания об HTTP очень ограничены..Net, WebClient, DownloadString не удается для одного сайта («Основное соединение было закрыто ...»)
Сайт 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;
}
Вы используете это на Windows XP? –
Да, он работает в Windows XP. Извините, что я забыл об этом. – JER