chenxingfeng的个人博客分享 http://blog.sciencenet.cn/u/chenxingfeng

博文

解决:C# HttpWebResponse 远程服务器返回错误(405) 不允许的方

已有 12936 次阅读 2016-6-22 07:27 |个人分类:软件开发|系统分类:科研笔记|关键词:学者

1、问题

如题,从国外某卫星中心的http数据服务器循环下载批量遥感数据,下载到中间就会报错。

蒙了。

难道是我为了支持断点,进行提前判断,连接服务器次数太多了,被主动断开?

2、发现问题所在

尝试诸多办法后,问题仍然存在。

今晨,断点看了一下问题,还是找不到原因,于是闲地蛋疼:

手动拷贝出错的网络地址,在浏览器打开,看看待下载文件的属性,路径没问题。

看看其它文件的路径是否与该文件相同,是相同的。

黔驴技穷后的冷静带来的是更加严重的百无聊赖,对着这些文件挨个点鼠标玩。

问题出现了,服务器上该文件只有文件名,几百兆的文件实质上是不存在的,点击下载根本没响应,而其他文件点击后都弹出了下载保存的对话框。

3、反思

国家级卫星中心的数据服务器,以前下载数据从未遇到问题。

可能潜意识认为,这种比较牛的地方,大抵是做了质检的,数据生产和发布是有检测和反馈的,也即,所有发布出来的数据都是可以正常下载使用的。

所以程序出错都应该是coder的问题。

实际上不是这样,人无完人,或者即使有了质检系统也不敢说就不会出异常。

所以,最终还是因为自己没有严格遵守编程规矩。

4、解决

操作系统遇到错误是可以返回信息的,例如题目中的字样。

再看自己的代码,用了try执行下载,finally关闭链接,确实唯独缺了出错的处理。

所以,只加了两句话,解决了:

catch (Exception e2)

{ return; }

不能下也就不下,放开它也是放开了自己。



https://m.sciencenet.cn/blog-474887-986065.html

上一篇:windows下使用linux命令Get that Linux feeling on windows
下一篇:C# Parallel.For使用的注意事项

1 徐令予

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-2-28 11:32

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部