解决:C# HttpWebResponse 远程服务器返回错误(405) 不允许的方
2016-6-22 07:27
阅读:13569
1、问题
如题,从国外某卫星中心的http数据服务器循环下载批量遥感数据,下载到中间就会报错。
蒙了。
难道是我为了支持断点,进行提前判断,连接服务器次数太多了,被主动断开?
2、发现问题所在
尝试诸多办法后,问题仍然存在。
今晨,断点看了一下问题,还是找不到原因,于是闲地蛋疼:
手动拷贝出错的网络地址,在浏览器打开,看看待下载文件的属性,路径没问题。
看看其它文件的路径是否与该文件相同,是相同的。
黔驴技穷后的冷静带来的是更加严重的百无聊赖,对着这些文件挨个点鼠标玩。
问题出现了,服务器上该文件只有文件名,几百兆的文件实质上是不存在的,点击下载根本没响应,而其他文件点击后都弹出了下载保存的对话框。
3、反思
国家级卫星中心的数据服务器,以前下载数据从未遇到问题。
可能潜意识认为,这种比较牛的地方,大抵是做了质检的,数据生产和发布是有检测和反馈的,也即,所有发布出来的数据都是可以正常下载使用的。
所以程序出错都应该是coder的问题。
实际上不是这样,人无完人,或者即使有了质检系统也不敢说就不会出异常。
所以,最终还是因为自己没有严格遵守编程规矩。
4、解决
操作系统遇到错误是可以返回信息的,例如题目中的字样。
再看自己的代码,用了try执行下载,finally关闭链接,确实唯独缺了出错的处理。
所以,只加了两句话,解决了:
catch (Exception e2)
{ return; }
不能下也就不下,放开它也是放开了自己。
转载本文请联系原作者获取授权,同时请注明本文来自陈兴峰科学网博客。
链接地址:https://wap.sciencenet.cn/blog-474887-986065.html?mobile=1
收藏
当前推荐数:1
推荐人:
推荐到博客首页
网友评论0 条评论