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