相信非常多小伙伴在写 HttpURLConnection中都设置了setConnectTimeout()方法。目的就是在网络不好的情况下超时返回

然而我们设置的setConnectTimeout()并没有在我们想要的时间里结束请求和抛出请求超时的异常。原因在于

HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                  conn.setConnectTimeout(2000);// 设置连接主机超时
                  conn.setReadTimeout(2000);// 设置从主机读取数据超时
我们没有设置从主机读取数据超时的參数。

程序调试下的情况:

执行在 

//server返回的响应码
int code = conn.getResponseCode();堵塞线程导致