在Android下,HttpURLConnection的默认读取超时时间和连接超时时间是多少?
看起来默认超时时间是0,但现在我很好奇,将连接超时时间设置为无限是否会有什么缺点?如果出现问题,我们会不会得到一个永远等待的连接?
在Android下,HttpURLConnection的默认读取超时时间和连接超时时间是多少?
看起来默认超时时间是0,但现在我很好奇,将连接超时时间设置为无限是否会有什么缺点?如果出现问题,我们会不会得到一个永远等待的连接?
由于Java的HttpURLConnection文档,超时默认设置为0(即无限制),并且可以修改。
具体来说,在文档的访问器/获取器方法中写明了;
public int getConnectTimeout() 返回连接超时的设置。返回0表示选项已禁用(即超时为无限期)。
返回:一个int,指示以毫秒为单位的连接超时值自: 1.5 参见:setConnectTimeout(int),connect()
如果我是你,我会在开始连接之前设置连接超时,并根据自己的初始值设置我的逻辑/流程。下面,您可以看到如何获取默认值并设置/修改连接超时参数的示例。
package com.levo.so.huc;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpConnectionTimeoutDemo {
public static void main(String[] args) throws IOException {
String url = "http://www.google.com/";
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
System.out.println("Default Connection Timeout : " + con.getConnectTimeout());
con.setConnectTimeout(1000);
System.out.println("New Connection Timeout : " + con.getConnectTimeout());
}
}
Default Connection Timeout : 0
New Connection Timeout : 1000