【问题标题】:What is the default timeout for HttpURLConnection under Android?Android下HttpURLConnection的默认超时时间是多少?
【发布时间】:2018-03-30 21:09:47
【问题描述】:

android下HttpURLConnection的默认读取和连接超时是多少?

默认超时为0,但现在我很好奇,将连接超时设置为无限是否有任何缺点?如果出现问题,我们可以建立一个永远等待的连接吗?

【问题讨论】:

  • 我认为默认超时取决于平台。但你问的是 Android 吗?
  • @MickMnemonic:是的,对不起,我的意思是安卓

标签: java android httpurlconnection


【解决方案1】:

A - 文档

由于HttpURLConnection的Java文档,timeout默认设置为0(表示无穷大),可以修改。

具体写在documentation中的accessor/getter方法中;

public int getConnectTimeout() 返回连接超时设置。 0 return 意味着该选项被禁用(即超时 无穷大)。

返回:一个 int 表示连接超时值 毫秒 1.5 另见: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

【讨论】:

  • 谢谢!我也更新了一点问题,因为我很想知道默认超时设置为无限是否不会导致一些问题
猜你喜欢
  • 1970-01-01
  • 2012-04-02
  • 2019-07-26
  • 2013-02-17
  • 2017-12-25
  • 2012-08-21
  • 1970-01-01
  • 2013-12-12
  • 2010-09-15
相关资源
最近更新 更多