java - HttpURLConnection超时异常问题
PHP中文网
PHP中文网 2017-04-17 11:46:46
[Java讨论组]

最近在使用java网络连接时:具体如下:
URL url=new URL("http://XXX.com.cn");
HttpURLConnection connect=(HttpURLConnection)url.openConnection();
connect.setConnectTimeout(500);//设置连接超时:500ms
connect.setReadTimeout(500);//设置读取超时:500ms

已经设置了超时,但是在本地环境中(断网的情况下),仍然要链接10多秒的时间,并且不会抛出SocketTimeoutException异常,想请教下大神们如何才能限制请求的时间,抛出超时这个异常呢
*******************************分割线****************************************
感谢 缪斯的情人 的热心解答
查看API以及网上搜索,然后断点跟踪进去看了一下:
HttpURLConnection connect=(HttpURLConnection)url.openConnection();
只会返回对象而不会真正建立连接,所以后面设置的连接超时和读取超时是可用的(通过设置超时为1ms,捕获到了超时异常).问题出在:本地网络是断开的,所以在调用connect.connect()的时候会抛出java.net.UnknownHostException异常.正是因为这样,导致连接十几秒的情况.
接下来的问题是,如何限制断网情况下尝试连接的时间呢(原谅我对网络这块的无知TT )

PHP中文网
PHP中文网

认证0级讲师

全部回复(1)
大家讲道理

这个超时时间应该是根据socket超时时间判断的,所以时间较长,在httpclient中要设置两个属性,一个是链接超时时间,一个是socket超时时间,看了下HttpURLConnection中api,你可以设置setReadTimeout来限制从目标主机读取信息的超时时间

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号