HttpWebRequest.GetResponse-Vorgang hat das Zeitlimit überschritten
Ich versuche, einfache gzip-codierte html-Antwort von einer website, und es wird immer wieder mal aus, Folgendes ist mein code:
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();
}
Die url die ich versuche zu schlagen "https client.schwab.com/Login/SignOn/CustomerCenterLogin.aspx"
Dieser funktioniert einwandfrei im Browser, mit Fiddler habe ich gesehen das browser-Request-header, und seit seiner Transfer-Encoding: chunked
habe ich HttpVersion10
Habe ich auch schon versucht die Einstellung httpClient.Timeout = System.Threading.Timeout.Infinite
, aber es wird nie wieder mit einer Antwort, aber im browser die Antwort bekommt in wenigen Sekunden.
Bitte jemand mir helfen, dies zu erreichen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
wahrscheinlich können Sie versuchen, die Einstellung Agenten-Eigenschaft, so dass es nicht zu erkennen, Sie als ein bot.
Ich denke, Nero hat Ihre Frage beantwortet ..
Versuchen Sie, diese Zeilen in Ihrem code.