[英]How to Access File Content from C# HTTPWebRequest with AutoRedirect
[英]Getting garbage content from httpwebrequest in c#
我正在尝试使用HtmlAgilityPack
读取HttpWebRequest
的响应内容,但是以某种方式显示了垃圾或其他编码字符,请帮助我如何读取内容
我得到的内容是:
“ \\ u001f ‹\\ b \\ 0 \\ 0 \\ 0 \\ 0 \\ 0 \\ u0004 \\0í½\\ a \\ u001cI –%&/mÊ{\JõJ×àt¡\\ b€\\\\ u0013 $Ø\\ u0090 @ \\ u0010ìÁˆÍæ'ì \\ u001diG#)«* \ÊeVe] f \\ u0016 @Ìí\¼÷Þ{ï½÷Þ{ï½÷º; \\ u009dN'÷ßÿ?\\ fd \löÎJÚÉž!€ªÈ\\ u001f?〜| \\ u001f?\\“ 〜ãÇ¿ëÓ/OÞü> /OÓy»(Ó— = y〜v'〜´}÷îwï\ܽûôÍÓÓ÷þö› /ž§»ã\ôM\\ u009d-›¢-ªeVÞ½{úâ£ô£yÛ®\\ u001eݽ{uu5¾º7®ê‹»o ^Ý} \\ aX»xY \Ýn½7dzvöÑÑc|'¾[”Ëæ³\\ b”݇\\ u000f \ÊË\¡Ñ£2 [^ |öÑ·O?Jío\\ u0004 \\“ ÏfG\Ëbù6óò\\ u008f \Ù²8Ï›ö£t ^ççŸ} t×| 0þé¦Z〜”Þ=z¼ÈÛŒ† Ú®¶ó´..ûè¤Z¶ù²Ý〜s½Ê?J§ò×g \\ u001fµù» ö.º?L§ó¬nòö³u{¾}°\ÈsÂm\\ u009d]ø€\\bÑè+¿÷öWÇÛ'Õb•µÅ¤ôß8;ý,Ÿ]ä£é¼®\ùg»îýeF\\ u007f \\ u007f´ h²Õª,¦bµÜ¦χ \\ vïõeµÌ?¢7 \YšyU·Óu› \ÔÈÒæ<»Äßcú磣¥Ñ\öQ±Üï¾Û¦ \¨\\ u001dÁh¦u±jõ[&ÉOg-™|éÑèo| ×üWM^ƒ\\ u0010uU>É.ÒÏÒóõr \\ n $Ó;é/æÖÓª,sùì³t™_¥_N〜šþÞºsø\\ u001b·ó¢\g³\\ u0019}áÞ+ f£´ËÅyºå ^ \ϳæË«å˺Zåu{MÍîQK \\ u0014»J?2 \§Å ,ýÞGé'øùIúÑ÷Ó,kb™ë4\\ u007fW4m“ \ËAô?:ü\\ u008d \Éoì:ü^1û>!VáSF´Î \ÕeN\ù¸\\ u0002 \\ a
我的密码
HttpWebRequest requestTransaction;
Uri uriTransact = new Uri(Url);
requestTransaction = (HttpWebRequest)WebRequest.Create(uriTransact);
requestTransaction.ContentType = "application/x-www-form-urlencoded";
requestTransaction.Method = "Post";
requestTransaction.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
requestTransaction.KeepAlive = true;
requestTransaction.Headers.Add("Cache-Control", "no-cache");
requestTransaction.CookieContainer = cookies;
requestTransaction.Headers.Add("Upgrade-Insecure-Requests", "1");
requestTransaction.Headers.Add("Accept-Encoding", "gzip, deflate, br");
requestTransaction.Headers.Add("Accept-Language", "en-US,en;q=0.9");
requestTransaction.Host = host;
requestTransaction.Headers.Add("Origin", requestOrigin);
requestTransaction.Referer = requestReferer
requestTransaction.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36";
byte[] sentData2 = Encoding.UTF8.GetBytes(postData2);
requestTransaction.ContentLength = sentData2.Length;
using (System.IO.Stream sendStream = requestTransaction.GetRequestStream())
{
sendStream.Write(sentData2, 0, sentData2.Length);
sendStream.Close();
}
using (var response = requestTransaction.GetResponse() as HttpWebResponse)
{
var doc = new HtmlAgilityPack.HtmlDocument();
doc.Load(response.GetResponseStream());
}
在检查doc.DocumentNode.InnerHtml
我得到了上面的内容。
我遇到了同样的问题,结果是响应被压缩了。 您可以删除
requestTransaction.Headers.Add("Accept-Encoding", "gzip, deflate, br");
对br不太确定,也可以添加
webRequest.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
到您的HttpWebRequest,顾名思义,它将自动解压缩响应。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.