2016-04-04 4 views
5

ich verwendet habe folgenden Code zu verbinden -java.net.SocketTimeoutException (ANDROID)

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

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

urlc.connect(); 

Er kehrte ein SocketTimeoutException.

Exception

Die genaue Ausnahme i bekommen habe ist

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

und manchmal -

java.net.SocketTimeoutException: failed to connect to results.bput.ac.in/14.139.212.166 (port 80) after 90000ms 
  • versucht, mit Entfernen der urlc.setConnectTimeout(1000 * 20); und immer noch die Ausnahme.
  • überprüft mit http anstelle von httpsURL url = new URL("http://results.bput.ac.in/"); aber kein Ergebnis.
  • cheked mit URL url = new URL("https://www.facebook.com/"); und bekam Erfolg Antwort.
  • Überprüft mit Ändern der Timeout-Zeit, aber gleiche Ausnahme.

Das Problem ist mit dieser spezifischen URL - http://results.bput.ac.in/.

Informationen

Dieser Link i http://results.bput.ac.in/ gegeben haben, ist perfekt ohne nachlauf auf jedem Web-Browser arbeiten.

Ich habe Informationen erhalten, dass einige Leute diese Seite nicht öffnen können, aber es kann ohne Verzögerung geöffnet werden.

Meine Forschung

Ich habe bereits versucht, this SO question, this SO question, this github solution und java code geeks solution bekam aber kein Ergebnis.

aktualisiert

Ich habe dies mit dem Gedanken, mit meinem WiFi und mobilen Daten getestet, dass mein Router ein Problem mit dem Hafen haben könnte. aber ich habe dieselbe Ausnahme mit mobilen Daten auch.

Hat jemand eine Lösung für dieses Problem.

+0

funktioniert dieser Link? –

+0

Ich habe meine Frage bearbeitet. @ PankajNimgade funktioniert der Link. –

+1

Ich habe versucht, den Link im Browser, aber es Timeout, bist du sicher –

Antwort

2

Wenn die hostname auf mehrere IP-Adressen aufgelöst wird, wird dieser Client versuchen, jede in RFC 3484 Reihenfolge. Wenn das Herstellen einer Verbindung zu jeder dieser Adressen fehlschlägt, werden mehrere Zeitüberschreitungen verstreichen, bevor der Verbindungsversuch eine Ausnahme auslöst. Hostnamen, die sowohl IPv6 als auch IPv4 unterstützen, haben immer mindestens 2 IP-Adressen.- Doc

Sie haben bereits setConnectTimeout() und hinzugefügt maximale Zeit auch so keinen Zweifel daran gewöhnt. Der Hauptgrund von SocketTimeoutException ist, wenn die Zeitüberschreitung abläuft, bevor eine Verbindung hergestellt wird.

Dann der wichtigste und bestimmte Grund ist Verbindung mit Ihrem Server konnte nicht hergestellt werden.

+0

was würde ich dann tun? irgendeine Lösungsmöglichkeit ? –

+0

Stellen Sie sicher, dass Sie diese 'URL' öffnen und eine ordnungsgemäße Verbindung herstellen können. Ihr Server antwortet nicht, aber 'https: // www.facebook.com' reicht, damit es funktioniert. Dies bedeutet, dass Sie mit diesem Fehler auf der Client-Seite nichts zu tun haben, bis Sie das Problem der Verbindungszeitüberschreitung behoben haben. –

+0

Ich habe auch versucht, keine Timeout-Zeit zu geben und das gibt auch Fehler. –

Verwandte Themen