【问题标题】:WebClient powershell Download return an empty fileWebClient powershell 下载返回一个空文件
【发布时间】:2013-06-03 01:17:00
【问题描述】:

我正在尝试将下面的图像下载到本地目录,但结果图像显示为空。

http://www.capecountyhomes.com/Homes/Images/Listings/77977723/1/Photo.jpg

这似乎是一项简单的任务,但由于某种原因,生成的图像不知何故为 0 字节。下面是我的代码

$wc = new-object System.Net.WebClient 
$wc.DownloadFile("http://www.capecountyhomes.com/Homes/Images/Listings/77977723/1/Photo.jpg","C:/images/test.jpeg")

但是我本地目录中的图片 test.jpeg 是 0 字节。

有人知道问题出在哪里吗?

谢谢

【问题讨论】:

  • 我猜这是一个错字,但是你在一个不存在的对象上调用了 DownloadFile 方法。
  • @Graimer,这是一个错字。现在已更正。谢谢
  • 我不知道为什么它不起作用。然而,我可以贡献的是确认Invoke-WebRequest(PS3.0 cmdlet)确实有效。如果我将所有数据保存在使用Invoke-WebRequest 检索的Content 属性中,我就会得到图片。 WebRequestWebClient 不起作用,即使它返回 200 OK 状态

标签: image file powershell download webclient


【解决方案1】:

似乎与标头有关,如果您添加用户代理,下载似乎可以工作:

$wc = new-object System.Net.WebClient 
$wc.Headers["User-Agent"] = "Safari"
$wc.DownloadFile("http://www.capecountyhomes.com/Homes/Images/Listings/77977723/1/Photo.jpg","C:/images/test.jpeg")

作为防止垃圾邮件的措施,可能会拒绝空白用户代理访问。

【讨论】:

  • 这也是我的想法。 Invoke-WebRequest 工作很奇怪,因为 Technet 说它的默认 UserAgent 是“none”/空白。但如果这行得通,那就行得通。没什么可抱怨的=)
  • Invoke-WebRequest 的用户代理是(在我的计算机上):用户代理:Mozilla/5.0(Windows NT;Windows NT 6.2;nl-BE)WindowsPowerShell/3.0
【解决方案2】:

url 不存在所以我无法测试,但我猜这个文件的大小确实是 0 字节。

【讨论】:

猜你喜欢
  • 2012-11-11
  • 1970-01-01
  • 1970-01-01
  • 2011-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-30
  • 1970-01-01
相关资源
最近更新 更多