【发布时间】:2023-03-11 23:50:01
【问题描述】:
我正在尝试从远程服务器获取一些数据。为此,我使用HttpURLConnection。问题是有时建立连接后的服务器只是挂起或什么,没有关闭连接,我挂在那里。那个挂起的线程也获得了锁,所以所有其他线程都在吸:D
代码:
try {
URL url = new URL(urlString);
URLConnection urlConnection = url.openConnection();
HttpURLConnection connection = (HttpURLConnection) urlConnection;
BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), Charset.forName(CharEncoding.UTF_8)));
StringBuilder sb = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
最后一行是我们要挂的地方。我找到了方法setConnectTimeout(timeout),但似乎情况并非如此,因为在建立连接之前它是超时的。解决这种情况的常用方法是什么?
【问题讨论】:
-
连接建立前超时?那么你不会一直到while循环,还是我误解了什么??
-
对不起,我在这里写得不清楚。我的意思是在类 HttpURLConnection 中找到了这样的方法;)我的代码中没有超时..
-
不用担心,如果我能帮助解决问题,我很高兴 :)
标签: java http networking