昨天收到用户的一个反馈情况,在核查信息时,页面几分钟一直没有反应。
我立马查看代码,发现在Http请求的地方仅仅设置了setConnectTimeout参数,因为我们是调用第三方接口,接口虽然连上,但是,很久没有数据的传输。这种情况下,没有setReadTimeout参数的限制,就会导致getResponseCode()超时,阻塞线程,无法响应。
因此,要同时设置setReadTimeout(),就可以解决setConnectTimeout了超时没反应的问题。
HttpURLConnection conn = (HttpURLConnection) new URL(LOGIN_URL).openConnection(); //设置请求方式,请求超时信息 conn.setRequestMethod("POST");//请求方式 conn.setReadTimeout(5000);//读取数据超时 conn.setConnectTimeout(5000);//连接超时