java.net.URL替代自定义超时设置

Vis*_*ath 19 java url timeout

需要使用java.net.URL类进行远程数据请求的超时设置.在一些谷歌搜索后发现有两个系统属性可用于设置URL类的超时,如下所示.

sun.net.client.defaultConnectTimeout  
sun.net.client.defaultReadTimeout
Run Code Online (Sandbox Code Playgroud)

我无法控制所有系统,也不希望每个人都继续设置系统属性.是否有任何其他替代方法可以进行远程请求,这将允许我设置超时.没有任何库,如果在java本身可用是可取的.

Whi*_*g34 55

如果你打开一个URLConnection来自URL你可以这样设置超时:

URL url = new URL(urlPath);
URLConnection con = url.openConnection();
con.setConnectTimeout(connectTimeout);
con.setReadTimeout(readTimeout);
InputStream in = con.getInputStream();
Run Code Online (Sandbox Code Playgroud)

你是如何使用URL或者你传递给它的?

  • 他可能会简单地调用`URL#openStream()`,它确实会使用默认超时. (2认同)