首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >哪里记录了java.net.HttpURLConnection默认超时?

哪里记录了java.net.HttpURLConnection默认超时?
EN

Stack Overflow用户
提问于 2018-10-16 03:57:06
回答 1查看 2K关注 0票数 1

java.net.HttpURLConnection类允许您设置连接超时和读取超时。但是,如果您不指定读取和连接超时的值,则Javadoc页不会指定它们。

是否记录了默认的连接和读取超时?我能够通过编写一个简单的程序来经验地确定它们:

代码语言:javascript
复制
public static void main(String[] args) {
    try {
        URL url = new URL("http://www.example.com");
        URLConnection conn = url.openConnection();
        System.out.println(String.format("connection timeout: %d", conn.getConnectTimeout()));
        System.out.println(String.format("read timeout: %d", conn.getReadTimeout()));
    } catch (IOException e) {
        e.printStackTrace();
        System.exit(1);
    }
}

(在MacOS和Linux上,对于我运行的Java1.8版本,它们都是0,这意味着没有超时)。

然而,我真正想要的是一个有官方文档的URL。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-16 04:22:28

HttpUrlConnectionUrlConnection继承超时字段和getter/setter方法

http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/tip/src/share/classes/java/net/URLConnection.java

代码语言:javascript
复制
/**

 * @since 1.5

 */

private int connectTimeout;
private int readTimeout;

因为它们在声明时从未被赋予另一个值,所以它们是0。该文档明确提到,非标准实现可以选择完全忽略超时变量,并定义自己的实现或字段或静态值。

Sun's implementation of HttpURLConnection does this.

代码语言:javascript
复制
/* Redefine timeouts from java.net.URLConnection as we need -1 to mean
 * not set. This is to ensure backward compatibility.
 */
private int connectTimeout = NetworkClient.DEFAULT_CONNECT_TIMEOUT;
private int readTimeout = NetworkClient.DEFAULT_READ_TIMEOUT;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52823893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档