2016-06-10 19 views
1

Ich arbeite an HttpURLConnection Klasse, um einige Netzwerkaktivitäten aus meiner Anwendung zu tun. Ich frage mich, wie die HttpURLConnection intern funktioniert. Ich bin durch die Klasse gegangen und habe die Methode connect() gefunden, die in URLConnection als Zusammenfassung definiert ist.Wie Android HttpURLConnection funktioniert?

Aber ich konnte die connect() Methodendefinition nicht finden. Also ich bin ziemlich gespannt, wie sich HttpURLConnection mit dem Server verbindet.

MyCode:

 URL url = new URL("https://example.com"); 
     connection = (HttpURLConnection) url.openConnection(); 
     connection.setRequestProperty("Accept-Encoding", "identity"); 
     connection.setRequestProperty("Authorization", basicAuth); 
     connection.setRequestProperty("Connection", "keep-alive"); 
     connection.setRequestProperty("Content-type", ""); 
     connection.setRequestProperty("User-Agent", "LibHttp/1.3.8"); 
     connection.setRequestMethod("POST"); 

     connection.connect(); // how it connects // 

Bitte empfehlen Sie mir irgendeine Lösung.

+0

Vielleicht könnte Ihnen das helfen [Java URLConnection - Wann muss ich die connect() Methode verwenden?] (Http://stackoverflow.com/questions/16122999/java-urlconnection-when-do-i-need- to-use-the-connect-Methode) – Isabelle

Antwort

1

Dies ist eine sehr breite Frage. Ich werde versuchen, dies kurz zu beantworten.

Immer wenn wir sagen, dass wir eine HTTP-Anfrage machen, stellen wir eine Socket-Verbindung mit dem Server auf Port 80 (Port 443 für https) her. Dann schreiben wir in den Socket nach dem HTTP-Protokoll und warten auf die Antwort des Servers.

Hier gibt es eine Zeitüberschreitung, die wir einstellen können, um die Verbindung herzustellen und dann eine Zeit einzustellen, auf die wir warten müssen, bis der Server antwortet.

Dies ist ein Synchronisierungsaufruf, das bedeutet, dass der Thread blockiert wird, bis der Server antwortet oder das Zeitlimit eintritt.

+0

Danke für die kurze Beschreibung. Kann aber bitte vorschlagen, was innerhalb der connect() Funktion geschrieben ist, damit dann die Verbindung zum Server starten kann. – animation123

+0

http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b27/sun/net/www/protocol/http/HttpURLConnection.java#HttpURLConnection.connect%28%29 - Sie finden detaillierte Informationen in diesem Link. –

+0

super toll, das wird helfen :) Danke !!! – animation123

Verwandte Themen