System.Net.WebException:操作已在System.Net.HttpWebRequest.GetResponse超时

问题描述 投票:1回答:1

我正在尝试浏览一些网页,但有时我收到“操作已超时”错误..有时它工作几天没有任何错误..收到错误后,如果我尝试从WebBrowser导航,它导航没有任何问题,但如果我想再次使用webrequest导航,我会再次收到此错误...

我试图从2-3分钟设置ReadWriteTimeout和Timeout属性,直到无限..仍然没有任何运气:(

这是我的代码:

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();

有什么想法吗?谢谢。

c# httpwebrequest webrequest httpwebresponse webresponse
1个回答
0
投票

你应该尝试添加

reqPOST.Timeout = 1000000; // Increase timeout
© www.soinside.com 2019 - 2024. All rights reserved.