- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下代码,用于下载网络地址的 html 源代码,但是当我运行它时,我只会得到随机字符和很多问号作为输出。
编码:
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(
delegate
{
return true;
});
using (WebClient webClient = new WebClient())
{
webClient.Headers["User-Agent"] = "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 (.NET CLR 3.5.30729)";
webClient.Headers["Accept"] = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
webClient.Headers["Accept-Language"] = "en-us,en;q=0.5";
webClient.Headers["Accept-Encoding"] = "gzip,deflate";
webClient.Headers["Accept-Charset"] = "ISO-8859-1,utf-8;q=0.7,*;q=0.7";
var htmlData = webClient.DownloadData("https://de.WEBSITE.com/EXAMPLE");
var htmlCode = Encoding.UTF8.GetString(htmlData);
Console.WriteLine(htmlCode);
}
最佳答案
这只是因为您正在下载 gzip 压缩的数据。
您应该解压缩数据,然后将其转换为 UTF-8。
webClient.Headers["User-Agent"] = "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 (.NET CLR 3.5.30729)";
webClient.Headers["Accept"] = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
webClient.Headers["Accept-Language"] = "en-us,en;q=0.5";
webClient.Headers["Accept-Encoding"] = "gzip,deflate";
webClient.Headers["Accept-Charset"] = "ISO-8859-1,utf-8;q=0.7,*;q=0.7";
var htmlData = webClient.DownloadData("https://de.WEBSITE.com/EXAMPLE");
using (var msi = new MemoryStream(htmlData))
using (var mso = new MemoryStream()) {
using (var gs = new GZipStream(msi, CompressionMode.Decompress)) {
gs.CopyTo(mso);
}
var htmlCode = Encoding.UTF8.GetString(mso.ToArray());
Console.WriteLine(htmlCode);
}
关于C# Webclient.DownloadData 只返回垃圾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65905193/
我有以下代码,用于下载网络地址的 html 源代码,但是当我运行它时,我只会得到随机字符和很多问号作为输出。 编码: ServicePointManager.ServerCertificateVal
我正在尝试使用 WebClient.DownloadData 下载文件。通常下载是好的,但对于某些 Urls,下载只是挂起。 我试图覆盖 WebClient,并为 WebRequest 设置超时,但没
我正在尝试使用 WebClient.DownloadData() 方法下载网站的源 HTML。 我的方法应该给我源代码: public string GetSite(string URL) {
我正在尝试使用 DownloadData 方法使用 RestSharp 下载文件(图像) var client = new RestClient(baseUrl); var request = new
我正在使用来自 WebClient 对象的 DownloadData 从几个网站下载网站图标。 我收到了字节数组的响应,一切正常,除了一件事:当 DownloadData 方法被执行时,它会卡住我的表
为了处理从没有文件扩展名的 url 下载数据的情况,我需要知道文件类型是什么。 例如,WebClient.DownloadData 方法如何显示它使用下面的 url 下载了 png [edit: jp
我希望自动解压缩 GZiped 响应。 我正在使用以下代码段: mywebclient.Headers[HttpRequestHeader.AcceptEncoding] = "gzip"; mywe
我希望自动解压缩 GZiped 响应。我正在使用以下代码片段: mywebclient.Headers[HttpRequestHeader.AcceptEncoding] = "gzip"; mywe
我正在关注此链接上的教程 http://www.codeproject.com/KB/aspnet/ASPNETService.aspx 现在我被这些代码困住了 private const strin
我正在尝试使用 WebClient 使用 WinForms 应用程序从 Web 下载文件。但是,我真的只想下载 HTML 文件。我想忽略的任何其他类型。 我检查了 WebResponse.Conten
如何使用 C++ 在线获取文件的内容? 最佳答案 有多种方法可以做到这一点。 WinInet 首先,Windows 有一个内置的 API,允许您发出 HTTP 请求,使用起来相当简单。我使用这个简单的
我是一名优秀的程序员,十分优秀!