需要使用java.net.URL类进行远程数据请求的超时设置。经过一些谷歌搜索后发现,有两个系统属性可用于设置URL类的超时,如下所示。
sun.net.client.defaultConnectTimeout
sun.net.client.defaultReadTimeout
我无法控制所有系统,也不希望每个人都继续设置系统属性。是否有任何其他替代方法可以进行远程请求,这将允许我设置超时。 没有任何库,如果在java本身可用则更好。
答案 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的整个过程。