java HttpURLConnection 设置超时没有效果

螃蟹变异了 螃蟹变异了 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
 
HttpURLConnection httpUrlConnection;
URL uri=new URL(url);
httpUrlConnection= (HttpURLConnection) uri.openConnection();
httpUrlConnection.setConnectTimeout(10000);
httpUrlConnection.setReadTimeout(10000);
httpUrlConnection.setRequestMethod("GET");

利用java HttpURLConnection设置http请求时间超时时间为10秒,下面是控制台打印的log

12-31 17:39:09.701 17494-17538/com.example.crab.mycameratest I/System.out﹕ [socket][5] connection lh4.googleusercontent.com/173.194.127.75:443;LocalPort=48785(10000)
12-31 17:39:19.743 17494-17538/com.example.crab.mycameratest I/System.out﹕ [socket][6] connection lh4.googleusercontent.com/173.194.127.76:443;LocalPort=52711(10000)
12-31 17:39:29.795 17494-17538/com.example.crab.mycameratest I/System.out﹕ [socket][7] connection lh4.googleusercontent.com/173.194.127.74:443;LocalPort=35041(10000)
12-31 17:39:39.888 17494-17538/com.example.crab.mycameratest I/System.out﹕ [socket][8] connection lh4.googleusercontent.com/173.194.127.75:443;LocalPort=58275(10000)
12-31 17:39:49.933 17494-17538/com.example.crab.mycameratest I/System.out﹕ [socket][9] connection lh4.googleusercontent.com/173.194.127.76:443;LocalPort=55627(10000)
12-31 17:39:59.986 17494-17538/com.example.crab.mycameratest I/System.out﹕ [socket][10] connection lh4.googleusercontent.com/173.194.127.74:443;LocalPort=50005(10000)
12-31 17:40:10.039 17494-17538/com.example.crab.mycameratest W/System.err﹕ java.net.SocketTimeoutException: failed to connect to lh4.googleusercontent.com/173.194.127.74


正常理解的话应该在socket][5] 这个请求不成功的时候就通知HttpURLConnection超时了,但是系统连续发出了
6个Socket请求(socket][5]到socket[10])后在通知HttpURLConnection说sokect超时了,这样总共算起来时间是用去
了60秒应用程序才收到超时,并不是我在应用中设置的10秒后就超时。
想问一下为什么程序不是在第一个Socket[5]就通知应用程序连接超时而是要等到Socket[10]通知应用程序超时呢?
如何设置只在第一次socket失败后就通知应用程序超时发生了?
...全文
评论 6
收藏 已收藏
分享
返回顶部
螃蟹变异了
Android 80,490 成员 91,375 内容