System.Net.WebException: истекло время ожидания операции в System.Net.HttpWebRequest.GetResponse
Я пытаюсь перемещаться по некоторым веб-страницам, но иногда я получаю сообщение об ошибке "истекло время ожидания операции". Иногда это работает без ошибок в течение нескольких дней. После получения ошибки, если я пытаюсь перейти из веб-браузера, она перемещается без проблем, но если я снова хочу перейти с помощью веб-запроса, я получаю эту ошибку снова...
Я попытался установить свойства ReadWriteTimeout и Timeout от 2-3 минут до бесконечности.. все еще без удачи:(
вот мой код:
static void setHeaders(ref WebRequest reqPOST, string sUrl)
{
reqPOST = System.Net.WebRequest.Create(sUrl);
reqPOST.Method = "GET";
((HttpWebRequest)reqPOST).UserAgent = "dummie useragent";
((HttpWebRequest)reqPOST).Accept = "*/*";
((HttpWebRequest)reqPOST).KeepAlive = true;
((HttpWebRequest)reqPOST).Timeout = Timeout.Infinite;
reqPOST.Headers.Add("Accept-Language", "en-US");
reqPOST.Headers.Add("Accept-Encoding", "gzip, deflate");
}
static void getResponse(ref WebRequest reqPOST, ref WebResponse result, ref StreamReader reader, ref string responseFromServer)
{
result = reqPOST.GetResponse();
if (result.Headers.Get("Content-Encoding") != null && result.Headers.Get("Content-Encoding").ToLower() == "gzip")
reader = new System.IO.StreamReader(new GZipStream(result.GetResponseStream(), CompressionMode.Decompress));
else
reader = new System.IO.StreamReader(result.GetResponseStream());
responseFromServer = reader.ReadToEnd();
}
setHeaders(ref reqPOST, "somewebsite");
getResponse(ref reqPOST, ref result, ref reader, ref responseFromServer);
reader.Close();
result.Close();
какие-либо идеи, пожалуйста? благодарю вас.
1 ответ
Вы должны попытаться добавить
reqPOST.Timeout = 1000000; // Increase timeout