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

时间:2011-03-18 12:01:53

标签: java url timeout

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

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

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

2 个答案:

答案 0 :(得分:54)

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

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

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

答案 1 :(得分:2)

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