Konvertierung von httpclient 3 auf 4
-
15-10-2019 - |
Frage
Ich habe es geschafft, Änderungen an allem außer den folgenden vorzunehmen:
HttpClient client;
HttpPost method;
client = new DefaultHttpClient();
method = new HttpPost(url);
InputStream rstream;
try {
rstream = method.getResponseBodyAsStream();
} catch (IOException e) {
return BadSpot(e.getMessage());
}
Was ich nicht sicher bin, ist das, was ich GetResponseBodyAssTream () ersetzen sollte.
Lösung
InputStream rstream;
try {
HttpResponse response = client.execute(HttpHost, method);
rstream = response.getEntity().getContent();
} catch (IOException e) {
return BadSpot(e.getMessage());
}
Oben sollte das tun, was Sie fragen.
Andere Tipps
Httpresponse.getEntity (), gefolgt von Httpentity.getContent ()
Die Util -Klasse hat einige hilfreiche Methoden:
EntityUtils.toString(response.getEntity());
Es gibt auch einige nützliche Dinge in den Beispielen bei Apache -Website
Verwenden EntityUtils
und überprüfen Sie die zurückgegebene Einheit, um es zu sein not null
Vor dem Verzehr des Unternehmens:
InputStream rstream;
try {
HttpResponse response = client.execute(HttpHost, method);
rstream = Optional.ofNullable(httpResponse.getEntity())
.map(e -> response.getContent()).orElse(null);
} catch (IOException e) {
return BadSpot(e.getMessage());
}
HINWEIS: Der InputStream hier kann null sein, und vor allem müssen Sie sicherstellen, dass er konsumiert wird, bevor Sie die Antwort/Freigabe der Verbindung tatsächlich schließen.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow