La conversión de HttpClient 3 a 4
-
15-10-2019 - |
Pregunta
Me las he arreglado para hacer cambios en todo menos lo siguiente:
HttpClient client;
HttpPost method;
client = new DefaultHttpClient();
method = new HttpPost(url);
InputStream rstream;
try {
rstream = method.getResponseBodyAsStream();
} catch (IOException e) {
return BadSpot(e.getMessage());
}
Lo que no estoy seguro es lo que debería sustituir a getResponseBodyAsStream () con.
Solución
InputStream rstream;
try {
HttpResponse response = client.execute(HttpHost, method);
rstream = response.getEntity().getContent();
} catch (IOException e) {
return BadSpot(e.getMessage());
}
arriba debe hacer lo que están pidiendo.
Otros consejos
HttpResponse.getEntity () , seguido por HttpEntity.getContent ()
La clase util tiene algunos métodos útiles:
EntityUtils.toString(response.getEntity());
También hay algunas cosas útiles en los ejemplos en de Apache web
Uso EntityUtils
y comprobar la entidad volvió a ser not null
antes de consumir la entidad:
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());
}
NOTA:. InputStream aquí puede ser nula y la mayor parte de todo lo que tiene que asegurarse de que se consume antes de que realmente cerca de la respuesta / liberar la conexión
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow