Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by peer) is occuring some times

I have searched a lot for this exception, which rarelly occur, but I didn't find any relevant answer which can solve my problem, I am using HttpURLConnection to get response as a xml from a url, it works fine but sometimes i get this exception:
java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by peer), I have used following code and url1 is my url which gives a 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);
like image 600
OM Yadav Avatar asked May 11 '13 04:05

OM Yadav


2 Answers

Try put urlConnection.setRequestProperty("connection", "close"); before connecting. This will disable keep-alive property which is on by default

like image 162
stuckedoverflow Avatar answered Nov 16 '22 20:11

stuckedoverflow


I had a similar problem when trying to talk with my server. I'm still not sure what happened, but I found this in my search to resolve the issue:

ok, the answer was that it's the server's fault - it had to close the connection after each request . it might be that android keeps a pool of connections and use the old one or something like that . anyway , now it works.

After reading this post, I killed the apache instance running on my server, let the phone see that the connection was refused, and restarted apache. After that, the issue disappeared. Hope this helps!

like image 26
Dylan Knowles Avatar answered Nov 16 '22 20:11

Dylan Knowles