Was ist der Unterschied zwischen CloseableHttpResponse.close () und httpPost.releaseConnection ()?

8
%Vor%

Ich habe eine HTTP-Anfrage wie oben ausgeführt.

Um die zugrunde liegende Verbindung freizugeben, ist es richtig, (1) und (2) aufzurufen? und was ist der Unterschied zwischen den beiden Aufruf?

Vielen Dank!

    
wyang 17.06.2015, 11:17
quelle

1 Antwort

11

Kurze Antwort:

request.releaseConnection() gibt die zugrunde liegende HTTP-Verbindung frei, damit sie wiederverwendet werden kann. response.close() schließt einen Stream (keine Verbindung), dieser Stream ist der Antwortinhalt, den wir vom Netzwerk-Socket streamen.

Lange Antwort:

Das korrekte Muster, das in jeder neuen Version zu befolgen ist & gt; 4.2 und wahrscheinlich noch davor, ist releaseConnection nicht zu verwenden.

request.releaseConnection() gibt die zugrunde liegende httpConnection frei, so dass die Anfrage wiederverwendet werden kann. Das Java-Dokument sagt jedoch:

  

Eine bequeme Methode zur Vereinfachung der Migration von HttpClient 3.1 API ...

Anstatt die Verbindung freizugeben, stellen wir sicher, dass der Inhalt der Antwort vollständig konsumiert wird, was wiederum sicherstellt, dass die Verbindung freigegeben und zur Wiederverwendung bereit ist. Ein kurzes Beispiel ist unten gezeigt:

%Vor%     
Matt 27.07.2015 17:02
quelle

Tags und Links