我想从一个网站简单的gzip编码的HTML响应,并不断变得超时,下面是我的代码:HttpWebRequest.GetResponse操作超时
HttpWebRequest httpClient = (HttpWebRequest)WebRequest.Create(url);
httpClient.Method = "GET";
httpClient.Accept = "text/html, application/xhtml+xml, */*";
httpClient.Headers.Add("Accept-Encoding: gzip, deflate");
httpClient.Headers.Add("Accept-Language: en-US");
httpClient.Headers.Add("DNT: 1");
httpClient.ProtocolVersion = HttpVersion.Version10;
httpClient.KeepAlive = true;
httpClient.Timeout = System.Threading.Timeout.Infinite;
httpClient.CookieContainer = cookieJar;
String responseAsText;
using (HttpWebResponse response = (HttpWebResponse)httpClient.GetResponse())
{
System.IO.StreamReader sr;
if (response.ContentEncoding.Equals("gzip"))
{
sr = new StreamReader(new GZipStream(response.GetResponseStream(), CompressionMode.Decompress));
}
else
{
sr = new System.IO.StreamReader(response.GetResponseStream());
}
responseAsText = sr.ReadToEnd();
}
我想要的网址命中“HTTPS client.schwab.com/Login/SignOn/CustomerCenterLogin.aspx”
这工作完全正常的浏览器,使用招我认为浏览器的请求头和自Transfer-Encoding: chunked
,我已经使用HttpVersion10
我也tr ied设置httpClient.Timeout = System.Threading.Timeout.Infinite
,但它永远不会收到响应,但是在浏览器中响应会在几秒钟内完成。
请有人帮助我实现这一目标。
你的意思是添加User-Agent头? –
httpClient.DefaultRequestHeaders.TryAddWithoutValidation(“Accept”,“text/html,application/xhtml + xml,application/xml”); httpClient.DefaultRequestHeaders.TryAddWithoutValidation(“Accept-Encoding”,“gzip,deflate”);httpClient.DefaultRequestHeaders.TryAddWithoutValidation(“User-Agent”,“Mozilla/5.0(Windows NT 6.2; WOW64; rv:19.0)Gecko/20100101 Firefox/19.0”); httpClient.DefaultRequestHeaders.TryAddWithoutValidation(“Accept-Charset”,“ISO-8859-1”); – realnero
试试这些头文件 – realnero