2011-01-04 12 views
8

He conseguido hacer cambios a todo menos lo siguiente:HttpClient 3 a 4

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 de lo que debería sustituir a getResponseBodyAsStream() con.

Respuesta

4
InputStream rstream; 
try { 
    HttpResponse response = client.execute(HttpHost, method); 
    rstream = response.getEntity().getContent(); 
} catch (IOException e) { 
    return BadSpot(e.getMessage()); 
} 

anterior debería hacer lo que están pidiendo.

2

La clase util tiene algunos métodos de ayuda:

EntityUtils.toString(response.getEntity()); 

También hay algunas cosas útiles en los ejemplos en apache's website

0

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: el InputStream estoy aquí puede ser nulo y, sobre todo, debe asegurarse de que se consuma antes de cerrar la respuesta/liberar la conexión.