C# 在c中从httpwebrequest获取垃圾内容#
我试图使用C# 在c中从httpwebrequest获取垃圾内容#,c#,.net,httpwebrequest,html-agility-pack,C#,.net,Httpwebrequest,Html Agility Pack,我试图使用HtmlAgilityPack读取HttpWebRequest的响应内容,但不知何故它显示垃圾或其他编码字符,请帮助我如何读取内容 我得到的内容是: “u001f\0\0\0\0\0\0\0\0\0\0\0\0 0\0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
HtmlAgilityPack
读取HttpWebRequest
的响应内容,但不知何故它显示垃圾或其他编码字符,请帮助我如何读取内容
我得到的内容是:
“u001f\0\0\0\0\0\0\0\0\0\0\0\0 0\0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0001Lö206JÚž!(Ó-=y~v'~)本月初的一名男子在街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上的街上2[^öñ·o?Jío\u0004 \“fG\u008f\u203fùbù6òò³\u008f\u0016Ù²8Ï›tçŸ}本月10日的一名研究者在本月12日的一名研究者在本月12日的一名研究者在本月12日的一名研究者在本月12日的一名研究者在本月12日的一名研究者在本月12日的一名研究者在本月20日的一名研究者在本月12日的研究者在本月18日的研究者在本月18日的研究者在本月18日的研究者在本月20日的其他其他其他其他其他其他其他其他其他其他的研究者在本月20日的两名研究者在本月20日的研究者在本月20日的研究者在本月20日的研究者在本月20日日的其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他其他的研究者在本月的研究者在本月的研究者在本月的研究者在本月的研究者在该该该该该该该该该该该该该名研究者在本本月的其他其他其他¼挈eF\u007f\u007f挈h卨卨卨bÜÎÎëeÌg挈eF\u007f\u007f卨h卨eÎg挈eÌ7挈y挈yU u卨uØ卨Ø卨卨卨Ø卨卨™_徖™ë4\u007fwdm“\u0016ËAô:ü\u008d\u007fìoì:ü^1ë>!VáSFÎÎ\u0017ÕeN\u001fù184;\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,顾名思义,它将自动解压缩响应。您确定编码。UTF8
是正确的编码吗?是的,因为我正在使用另外3个API,并且相同的代码正在处理它们。这个符号\u001f
是UTF-16,那么,如何从中获取所需的html内容?使用UTF16按照我们的建议进行编码。