Verwenden Sie HTTPClient oder HttpUrlConnection? [geschlossen]

8

Wir implementieren einen REST-Client in JRE 1.4.

Zwei gute Optionen für ein Client-REST-Framework sind HttpClient und HttpUrlConnection .

Gibt es einen Grund, HttpClient über die HttpUrlConnection der JRE zu verwenden?

    
Marcus Leon 16.11.2009, 00:59
quelle

7 Antworten

4

Ich würde Jakarta Commons HTTP Client über java.net.HttpUrlConnection empfehlen, da es ausgereifter ist und eine Seite hat reichere Funktionen . Zum Beispiel können Sie darum bitten, einen Multithread-Verbindungspool einzurichten (siehe MultiThreadedHttpConnectionManager ) und Es hat volle Unterstützung für alle HTTP-Methoden (GET, PUT, POST, DELETE, OPTIONEN, TRACE).

    
Jim Ferrans 25.11.2009 09:50
quelle
4

Ich gebe Ihnen einen einzigen, konkreten Grund, Apache HTTPClient gegenüber der JDK-Implementierung zu bevorzugen: Das HttpUrlConnection des JDK unterstützt keine Timeouts *, der HTTPClient von Apache.

Anwendungen sollten immer die Möglichkeit haben, Timeouts festzulegen, wenn sie in andere Systeme (Datenbanken, Remote-Dienste, Ihr eigenes Server-Backend usw.) anrufen.

* Dies wurde in Java 1.5 behoben. Java 1.5 und höher unterstützen Timeouts in HttpUrlConnection.

    
SteveD 22.11.2009 10:04
quelle
2

Das Restlet Framework verfügt auch über eine API, die sowohl serverseitig als auch clientseitig funktioniert. Wir unterstützen steckbare Client-Connectors unter Nutzung von HttpURLConnection oder Apache HTTP Client oder unserem eigenen internen HTTP-Client.

Unsere ClientResource-Klasse bietet eine HTTP-Client-API auf höherer Ebene mit Funktionen wie automatischer Umleitung, transparenter Konvertierung zwischen Objekten und Darstellungen, Inhaltsverhandlung und mehr.

Mit freundlichen Grüßen

Jerome Louvel

Restlet ~ Gründer und Hauptentwickler Ссылка

Noelios Technologies ~ Mitbegründer ~ Ссылка

    
Jerome Louvel 20.11.2009 15:42
quelle
1

Nach meiner Erfahrung ist HttpClient etwas einfacher und intuitiver zu benutzen als HttpUrlConnection, aber ich denke, es ist eine sehr subjektive Entscheidung und YMMV.

    
Aditya 16.11.2009 01:02
quelle
1

Ich würde mit der JRE-Version gehen, nur damit ich weniger Abhängigkeiten habe.

    
Eric 16.11.2009 01:04
quelle
1

... httpclient unterstützt keine kerberos / ntlm Authentifizierung für Proxies etc ... javas httpurlconnection wird die Authentifizierung sofort durchführen ...

    
helmut 30.03.2010 08:03
quelle
0

Die HttpUrlConnection ist einfach zu handhaben. REST-Implementierungen sind recht einfach.

Sie müssen jedoch die gesamte Umgebung über diese Implementierung betrachten und prüfen, was für Sie besser funktioniert.

    
jonaspp 16.11.2009 02:25
quelle