1

好的,所以我之前问了一个关于 using 的问题

webclient.downloadfile($url,$path)

我无法打开 PDF 文件,因为它的编码不正确。我现在知道的是,这是因为该网站只允许Internet Explorer使用。因此,我从未真正下载过 PDF,而是下载了 HTML 页面……作为 PDF。因此错误。对于该网站,当使用任何其他网站时,会弹出一个页面让您知道。我在使用时发现:

$webclient.downloadstring($url)

..通读几行Powershell ISE,遇到同一句话:

“检测到不兼容的浏览器。必须使用 IE 7.0 及更高版本”

好的。所以我做了一些研究并了解了这个 .AddHeader() 函数。我用了以下。

$wc.Headers.Add("user-agent", "Windows-RSS-Platform/2.0 (MSIE 9.0; Windows NT 6.1)")

实际上在这个网站上。我认为这会诱使网站认为我正在使用Internet Explorer 9.0. 我输入$webclient以查看我的Net.webclient对象的所有属性并阅读

Headers: {user-agent}

甜我说。现在它将起作用。但后来我尝试了我的.downloadfile功能,同样的事情发生了。运行 my 后,我再次downloadfile检查了属性,我的发生了什么?谁能让我知道为什么会发生这种情况或提供任何提示以使其正常工作?$webclientHeaders= {}user-agent

4

1 回答 1

2

这是正常的 - 在第一次调用之后,标头被重置WebClient。因此,任何后续调用都将使它们为空。这是来自 msdn.microsoft.com 的证明链接

使用相同的 WebClient 重复调用导致 404 我们发现使用 WebClient 进行的第二次(和后续)调用失败。这是因为任何标题都丢失了。因此,您需要确保在每次调用同一 WebClient 实例之前重置您使用的自定义标头。

于 2012-10-20T02:01:33.503 回答