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);
Try put urlConnection.setRequestProperty("connection", "close"); before connecting. This will disable keep-alive property which is on by default
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!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With