http请求---请为我设置超时时间
来源:互联网 发布:未来网络发展调研报告 编辑:程序博客网 时间:2024/05/07 07:59
下午在调试一个自动升级的功能,升级时突然拔掉网线,程序应该马上提示网络断开,升级失败。但是在某些厂商的鸡腚核上进度条始终停在某个位置,不报错也不崩溃,死在了那里。
因为是断网环境,所以看不到logcat打印出来的日志。只好研究了断网日志是如何输出的,参见 断网日志输出到SD卡 --http://www.67tgb.com/?p=582
不得不说日志是个好东西,在我们看不到的角落,忠诚的记载着应用内部发生的一切变化。
通过打印一些方法的执行时间,发现在使用HttpUrlConnect打开网络连接之后,程序阻塞在了InputStream 的read()的方法上。这个方法本来就是一个阻塞的方法,一直在等待读取网络端的数据,本身会抛出IO异常。
在某些盒子上,拔掉网线会迅速抛出IO异常,但是有的盒子则始终处于阻塞状态。仔细读了一些API才猛然发现,自己没有为Http请求设置连接超时和读取超时。
虽然是很小的一个问题,但是却找了很长时间才确定。写篇博客牢记以下。
DefaultHttpClient 设置超时方式如下:
DefaultHttpClient client = new DefaultHttpClient(); client.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 15000); client.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 15000);
现实生活也是这样的,比如打电话,呼叫超过一分钟没人接听,则自动断开通话,防止阻塞信道。
- http请求---请为我设置超时时间
- http 请求 超时时间设置
- 为ServerXMLHTTP对象的HTTP请求设置超时时间
- 为ServerXMLHTTP对象的HTTP请求设置超时时间
- 设置 TOMCAT 请求超时时间
- 设置请求超时的时间
- 设置请求超时的时间
- AFNetWorking设置请求超时时间
- java设置http超时时间
- httpclient4 请一定设置超时时间
- httpclient4 请一定设置超时时间
- Java HTTP请求时设置超时
- Android http请求数据 设置超时
- 设置HTTP请求超时自动重发
- HTTP Get和Post请求设置超时
- 设置Apache的HttpClient请求时间超时
- 设置AFNetworking网络请求的超时时间
- 设置 AFNetworking 网络请求的超时时间
- Baidu Astar 130427
- 动、静态库编译顺序
- 消息映射深度探索(5):总结
- 9、C++程序中内存区域划分
- 俄罗斯方块
- http请求---请为我设置超时时间
- 10、C++在堆上分配内存
- 制作jffs2和ubifs文件系统时用到的mkfs.jffs2和mkfs.ubifs工具制作脚本
- 北京公积金查询 本人亲试 2013年4月
- 11、C++const指针 引用
- 喝火令·负
- Android GWES消息系统分析
- 喝火令·醉
- 2哥学Vb.net--关于线程