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.

Schreibe einen Kommentar