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

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

sun.net.client.defaultConnectTimeout sun.net.client.defaultReadTimeout 

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

如果您从URL打开URLConnection ,则可以通过以下方式设置超时:

 URL url = new URL(urlPath); URLConnection con = url.openConnection(); con.setConnectTimeout(connectTimeout); con.setReadTimeout(readTimeout); InputStream in = con.getInputStream(); 

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

一个常见的替代品是Apache Commons HttpClient ,它可以更好地控制获取HTTP URL的整个过程。