2016-04-04 5 views
5

Ho usato seguente codice per la connessione -java.net.SocketTimeoutException (Android)

URL url = new URL("https://results.bput.ac.in/"); 

HttpURLConnection urlc = (HttpURLConnection) url.openConnection(); 
urlc.setConnectTimeout(1000 * 20); 

urlc.connect(); 

E ha restituito un SocketTimeoutException.

Eccezione

L'eccezione esatto sto ottenendo è

java.net.SocketTimeoutException: failed to connect to results.bput.ac.in/14.139.212.166 (port 443) after 90000ms 

ea volte questo -

java.net.SocketTimeoutException: failed to connect to results.bput.ac.in/14.139.212.166 (port 80) after 90000ms 
  • provato con rimuovere il urlc.setConnectTimeout(1000 * 20); e ancora ottenuto l'eccezione.
  • verificato con http anziché httpsURL url = new URL("http://results.bput.ac.in/"); ma non ha ottenuto risultati.
  • conteggio URL url = new URL("https://www.facebook.com/"); e risposta riuscita.
  • Controllato con modifica del periodo di timeout ma stessa eccezione.

Il problema è con questo URL specifico - http://results.bput.ac.in/.

Informazioni

Questo link ho dato http://results.bput.ac.in/ è perfettamente funzionante su qualsiasi browser web, senza alcun ritardo.

Ho ricevuto informazioni che alcuni ragazzi non possono aprire questo sito, è in ritardo ma posso aprirlo senza alcun ritardo.

La mia ricerca

ho già provato this SO question, this SO question, this github solution e java code geeks solution ma ha ottenuto alcun risultato.

Aggiornamento

Ho testato questo con il mio wifi e dati mobili pensando che il mio router potrebbe avere qualche problema con la porta. ma ho avuto la stessa eccezione anche con i dati mobili.

Qualcuno ha qualche soluzione a questo.

+0

il collegamento funziona? –

+0

ho modificato la mia domanda. @PankajNimgade il link funziona. –

+1

ho provato quel collegamento nel browser, ma è scaduto, sei sicuro che –

risposta

2

Se lo hostname si risolve in più indirizzi IP, questo client proverà ciascuno nell'ordine RFC 3484. Se la connessione a ciascuno di questi indirizzi non riesce, scadranno più timeout prima che il tentativo di connessione generi un'eccezione. I nomi host che supportano sia IPv6 e IPv4 hanno sempre almeno 2 indirizzi IP.- Doc

Hai già utilizzato setConnectTimeout() e ha aggiunto il massimo tempo pure in modo senza dubbio su questo. Il motivo principale di SocketTimeoutException è se il timeout è trascorso prima che venga stabilita una connessione.

Quindi il motivo principale e determinato è Impossibile stabilire la connessione con il server.

+0

cosa farei allora? qualche soluzione? –

+0

Assicurati di poter aprire quell'URL e stabilire una connessione corretta. il tuo server non risponde ma "https: // www.facebook.com' farà, quindi funzionerà correttamente. Ciò significa che non hai nulla a che fare con questo errore nel lato client fino a quando non risolvi il problema di timeout della connessione. –

+0

ho anche provato a non dare alcun periodo di timeout e questo è un errore. –