1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > http请求---请为我设置超时时间

http请求---请为我设置超时时间

时间:2021-08-16 11:09:04

相关推荐

http请求---请为我设置超时时间

下午在调试一个自动升级的功能,升级时突然拔掉网线,程序应该马上提示网络断开,升级失败。但是在某些厂商的鸡腚核上进度条始终停在某个位置,不报错也不崩溃,死在了那里。

因为是断网环境,所以看不到logcat打印出来的日志。只好研究了断网日志是如何输出的,参见 断网日志输出到SD卡 --/?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);

现实生活也是这样的,比如打电话,呼叫超过一分钟没人接听,则自动断开通话,防止阻塞信道。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。