8

我已经搜索了很多这个异常,很少发生,但我没有找到任何可以解决我的问题的相关答案,我HttpURLConnection用来从 url 获取响应作为 xml,它工作正常但有时我得到这个异常:
java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by peer),我使用了以下代码,url1 是我的 url,它提供了一个 xml。

url=new URL(url1);
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setDoInput(true);  
urlConnection.connect();
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String result, line = reader.readLine();
result = line;
           while((line=reader.readLine())!=null)
                       {
               result+=line;
           }

           System.out.println("Result: "+result);
4

4 回答 4

10

试试把 urlConnection.setRequestProperty("connection", "close"); 在连接之前。这将禁用默认启用的 keep-alive 属性

于 2014-02-07T17:21:09.360 回答
2

尝试与我的服务器交谈时,我遇到了类似的问题。我仍然不确定发生了什么,但我在搜索中找到解决问题的方法:

好的,答案是这是服务器的错 - 它必须在每次请求后关闭连接。可能是android保留了一个连接池并使用旧的连接池或类似的东西。无论如何,现在它可以工作了。

看完这篇文章,我杀死了apache我服务器上运行的实例,让手机看到连接被拒绝,然后重新启动apache。之后,这个问题就消失了。希望这可以帮助!

于 2013-12-05T18:37:01.683 回答
0

就我而言,我从http更改为https,一切都变得正常

于 2018-04-26T13:18:33.773 回答
-1

打开您正在使用的浏览器并尝试将 urland 复制粘贴到您的 MOBILE DEVICE 的浏览器中,如果您仍然遇到相同的错误或可能连接被拒绝,这意味着您的 MOBILE 和您运行服务器的 PC 不在同一个计划中.

于 2013-05-11T04:29:54.540 回答