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> �

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top