Seltsames Verhalten von httpwebRequest während der Verwendung von WebProxy
-
13-10-2019 - |
Frage
Ich habe einen HTTPWebRequest mit einem Streamreader, der sehr gut funktioniert, ohne ein Webproxy zu verwenden. Wenn ich WebProxy verwende, liest der StreamReader seltsames Zeichen anstelle des tatsächlichen HTML. Hier ist der Code.
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();
Ohne die zu verwenden WebProxy
, Die Variable html
Hält die erwartete HTML -Zeichenfolge aus der URL. Aber mit a WebProxy
, html
Hält einen solchen Wert:
"� b 0 0 0 0 0 0��] r��� � ���� 0 tp "] ki���ػ��-�� x� 0 f���/�! (M���14 &? R�d: �ex�j��p������. Ԙ6+�l��� 岳 �y��y'ͧ��� ~#5leck �it����5��%�p�e�l����t & x0:-2��i�c ��� $ m��_6�� � �tj�> c -��gy��k�o�r $ �p�t� 8+�*] 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! ��} H��+q��io] �8��c����n�Ag ڟ u2> �
Lösung
Da bestehen Sie
req.Headers.Add("Accept-Encoding", "gzip,deflate,sdch");
Ich würde sagen, Ihr Proxy komprimiert den Stream, bevor Sie ihn an Sie zurücksenden.
Überprüfen Sie die Header der Antwort, um die Codierung zu überprüfen.
Andere Tipps
Verwenden Sie einfach GZIP, um es zu dekomprimieren.