java.net.URL 的替代方案,用于自定义超时设置

2022-09-02 05:15:14

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

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

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


答案 1

如果要打开 from,可以按以下方式设置超时:URLConnectionURL

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

您如何使用或将其传递给什么?URL


答案 2

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