2013-05-11 15 views
8

Ho cercato molto per questa eccezione, che si verifica raramente, ma non ho trovato alcuna risposta pertinente che possa risolvere il mio problema , Sto usando HttpURLConnection per ottenere una risposta come xml da un URL, funziona bene ma a volte ottengo questa eccezione:
java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by peer), Ho usato il seguente codice e url1 è il mio URL che dà un xml.java.net.SocketException: recvfrom non riuscito: ECONNRESET (Connessione ripristinata dal peer) si verifica qualche volta

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); 
+0

ha una connessione timeout http://stackoverflow.com/questions/11638634/android-how-to-set-a-http-connection-timeout-and- reagire-to-it – Raghunandan

+0

Ho lo stesso problema .. – Dediqated

+0

possibile duplicato di [Ottenere "SocketException: Connessione ripristinata dal peer" in Android] (http://stackoverflow.com/questions/11207394/getting-socketexception-connection-reset -by-peer-in-android) –

risposta

-1

aprire il browser che si sta utilizzando e provare a copiare l'Urland incollarlo nel browser del tuo dispositivo mobile, se ancora lo stesso errore o può essere connessione rifiutata che significa che il cellulare e il PC sul quale server le corse non sono sullo stesso piano.

+0

Sì, ho fatto questa cosa ma si sta aprendo nel browser del cellulare, come ho spiegato che si verifica 5 volte su 20 volte testati. –

+0

No, non lo è. Non può esserci una connessione da ripristinare a meno che non ci fosse una connessione, e non può esserci una connessione a meno che non ci fosse un percorso di rete tra i peer. – EJP

2

Ho avuto un problema simile quando ho provato a parlare con il mio server. Io non sono ancora sicuro di quello che è successo, ma ho trovato this nella mia ricerca per risolvere il problema:

ok, la risposta è stata che è colpa del server - ha dovuto chiudere la connessione dopo ogni richiesta. potrebbe essere che Android mantenga una piscina di connessioni e usi quella vecchia o qualcosa del genere. comunque, ora funziona.

Dopo aver letto questo post, ho ucciso l'istanza apache in esecuzione sul mio server, lasciare che il telefono vedere che la connessione è stata rifiutata, e riavviato apache. Successivamente, il problema è scomparso. Spero che questo ti aiuti!

10

Provare a mettere urlConnection.setRequestProperty ("connection", "close"); prima di connettersi. Questo disabiliterà la proprietà keep-alive che è attiva per impostazione predefinita

+0

come impostare questo per HttpClient o HttpPost? –

Problemi correlati