J'ai un HttpWebRequest avec un StreamReader qui fonctionne très bien sans utiliser de WebProxy. Lorsque j'utilise WebProxy, StreamReader lit un caractère étrange au lieu du html réel. Voici le code.Comportement étrange de HttpWebRequest lors de l'utilisation de WebProxy
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("https://URL");
req.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.224 Safari/534.10";
req.Accept = "application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
req.Headers.Add("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.3");
req.Headers.Add("Accept-Encoding", "gzip,deflate,sdch");
req.Headers.Add("Accept-Language", "en-US,en;q=0.8");
req.Method = "GET";
req.CookieContainer = new CookieContainer();
WebProxy proxy = new WebProxy("proxyIP:proxyPort");
proxy.Credentials = new NetworkCredential("proxyUser", "proxyPass");
req.Proxy = this.proxy;
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
StreamReader reader = new StreamReader(res.GetResponseStream());
string html = reader.ReadToEnd();
Sans utiliser le WebProxy
, la html
variable contient la chaîne HTML attendue de l'URL. Mais avec un WebProxy
, html
détient une valeur comme ça:
« \ b \ 0 \ 0 \ 0 \ 0 \ 0 \ 0] LY \ 0 \ tP \ "] ki ػ - X \ 0 \ f /! HU > Cr P $% nR z g 3 t ~ q3 اٴ ȋ (M 14 &? \ R d: ex j p . Y o | ӎu OO . \ v]?} ~ E: b L ן Ԙ6 + l 岳 Y y'ͧ ~ # 5ϩ it 2 5 % p E L t & x0: - 2 i C $ M _6 zU tJ > C- GY k O R $ P T 8 + *] HY \ "HY $
Ō�-�r�ʙ
H3 \ f8Jd Q (: G E r R ܔ ڨ W <] $ i> 8 \ b p \ = 4 \ f > & $ \ v C C vC x p | \ "b9 ʤ \ r% i w @ \ t r M ! G jP 8.D k X't J /\ v! r y \ f7 < "\", \ a/IK r ҿ5;} h + QIO] 8cnAG ڟ u2>
Parfait. Cela a fonctionné une fois que j'ai enlevé cet en-tête. Merci Sam. – deadlock
'HttpWebRequest' ne supporte même pas sdch. :) – bzlm