Преобразование из HttpClient 3 в 4 - PullRequest
10 голосов
/ 05 января 2011

Мне удалось внести изменения во все, кроме следующего:

HttpClient client;
HttpPost method;   
client = new DefaultHttpClient();
method = new HttpPost(url); 

InputStream rstream;
try {
    rstream = method.getResponseBodyAsStream();
} catch (IOException e) {
    return BadSpot(e.getMessage()); 
}

В чем я не уверен, так это в том, что я должен заменить getResponseBodyAsStream () на.

Ответы [ 4 ]

4 голосов
/ 05 января 2011
InputStream rstream;
try {
    HttpResponse response = client.execute(HttpHost, method);
    rstream = response.getEntity().getContent();
} catch (IOException e) {
    return BadSpot(e.getMessage()); 
}

выше должен делать то, что вы просите.

2 голосов
/ 03 апреля 2013

В классе util есть несколько полезных методов:

EntityUtils.toString(response.getEntity());

В примерах на сайте apache * также есть несколько полезных вещей

2 голосов
/ 05 января 2011
0 голосов
/ 23 мая 2017

Используйте EntityUtils и убедитесь, что возвращаемая сущность равна not null перед использованием сущности:

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()); 
}

ПРИМЕЧАНИЕ: InputStream здесь может быть нулевым, и больше всего выубедитесь, что он используется, прежде чем вы фактически закроете ответ / освободите соединение.

...