android下HttpURLConnection的默认读取和连接超时时间是多少?
它的默认超时是 0,但现在我很好奇,将连接超时设置为无限有什么缺点吗?如果出现问题,我们能否建立一个永远等待的连接?
最佳答案
A - 文档
由于 HttpURLConnection 的 Java 文档,超时默认设置为0(表示无穷大),可以修改。
具体写在documentation中的accessor/getter方法中;
public int getConnectTimeout() Returns setting for connect timeout. 0 return implies that the option is disabled (i.e., timeout of infinity).
Returns: an int that indicates the connect timeout value in milliseconds Since: 1.5 See Also: setConnectTimeout(int), connect()
如果我是你,我会在开始连接之前设置连接超时,并根据我自己的初始值设置我的逻辑/流程。下面,您可以看到有关如何获取默认值和设置/修改连接超时参数的示例。
B - 示例代码
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());
}
}
C - 输出
Default Connection Timeout : 0
New Connection Timeout : 1000
关于java - Android下HttpURLConnection的默认超时时间是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49581485/