IE直接能打开的URL,用WebClient去访问就出错??

jintianhu2000 2010-07-21 04:52:46
URL地址

就是上面那个地址,用IE直接能打开,用WebClient去访问就提示“远程服务器返回错误: (500) 内部服务器错误。”

代码如下:

WebClient wc = new WebClient();
//出错
wc.DownloadFile("http://pdf1.alldatasheet.com/datasheet-pdf/view/346111/HONEYWELL/HSCDDRD005PAAB5/+2_523_V.MM./1ZHOPfxalMxdPDEKfSyuO+/datasheet.pdf",@"c:\1.pdf");

//同一个网站下的类似地址,不出错
//wc.DownloadFile("http://pdf1.alldatasheet.com/datasheet-pdf/view/212953/DBLECTRO/JQX-14FCAZ5AAC61.23.5/+Q13975VCzK.EUuyeOXepz.ROxoKRSuOKIxPLT+/datasheet.pdf", @"c:\1.pdf");


真的好诡异的啊,而且IE能访问,用WebClient类就不行。。。而且同一个网站下的类似地址也不出错。
...全文
343 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
雪狐 2010-07-22
  • 打赏
  • 举报
回复
看这地址,地址应该处理过,也就是说应该需要报头,楼主复查一下
jintianhu2000 2010-07-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 hucailin 的回复:]
WebClient wc = new WebClient();
//出错
wc.DownloadFile("http://pdf1.alldatasheet.com/datasheet-pdf/view/346111/HONEYWELL/HSCDDRD005PAAB5/+2_523_V.MM./1ZHOPfxalMxdPDEKfSyuO+/datasheet.pdf",@"c:\1.pdf")……
[/Quote]

麻烦您复制下你认为错误的URL地址到IE地址栏看看能不能打开?
liiifeiii 2010-07-22
  • 打赏
  • 举报
回复
没有遇到过
冰凝瞬间1986 2010-07-22
  • 打赏
  • 举报
回复
WebClient wc = new WebClient();
//出错
wc.DownloadFile("http://pdf1.alldatasheet.com/datasheet-pdf/view/346111/HONEYWELL/HSCDDRD005PAAB5/+2_523_V.MM./1ZHOPfxalMxdPDEKfSyuO+/datasheet.pdf",@"c:\1.pdf");

//同一个网站下的类似地址,不出错
//wc.DownloadFile("http://pdf1.alldatasheet.com/datasheet-pdf/view/212953/DBLECTRO/JQX-14FCAZ5AAC61.23.5/+Q13975VCzK.EUuyeOXepz.ROxoKRSuOKIxPLT+/datasheet.pdf", @"c:\1.pdf");

很明显,你上面的地址输入有问题,如果是正确的地址,下面一定有条下划线的,你可以检查是否使用了全角输入,和中文输入


孟子E章 2010-07-22
  • 打赏
  • 举报
回复
建议使用HttpWebRequest
frankla 2010-07-22
  • 打赏
  • 举报
回复
建议加几个HTTP header ,加了后估价没问题
jintianhu2000 2010-07-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 computerfox 的回复:]
一直报错?
还是偶尔网络无法访问到那个文件?
[/Quote]

是一直无法访问,不是网络问题
jintianhu2000 2010-07-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 profligateyouth 的回复:]
默认情况下,WebClient 实例不发送可选的 HTTP 报头。如果你的请求需要可选报头,必须将该报头添加到 Headers 集合。例如,要在响应中保留查询,必须添加用户代理报头。此外,如果用户代理标头丢失,服务器可能返回 500(内部服务器错误)。
[/Quote]

那个网址应该不需要HTTP 报头,因为那是个PDF的下载地址,所有的下载地址的处理方式应该都一样的,你看我代码中注释掉的那一行,那个也是个类似的下载地址,但是它就不报错。。。
youth 2010-07-21
  • 打赏
  • 举报
回复
默认情况下,WebClient 实例不发送可选的 HTTP 报头。如果你的请求需要可选报头,必须将该报头添加到 Headers 集合。例如,要在响应中保留查询,必须添加用户代理报头。此外,如果用户代理标头丢失,服务器可能返回 500(内部服务器错误)。
捷哥1999 2010-07-21
  • 打赏
  • 举报
回复
一直报错?
还是偶尔网络无法访问到那个文件?

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧