BasicResponseHandler
возвращает ваши данные только в том случае, если был возвращен код успеха (2xx). Однако вы можете очень легко написать свой собственный ResponseHandler
, чтобы всегда возвращать тело ответа в виде String
, например
ResponseHandler<String> responseHandler = new ResponseHandler<String>() {
@Override
public String handleResponse(HttpResponse response) throws ClientProtocolException, IOException {
return EntityUtils.toString(response.getEntity());
}
};
В качестве альтернативы вы можете использовать другой перегруженный метод выполнения для HttpClient
, который не требует ResponseHandler
и возвращает вам HttpResponse
напрямую. Затем позвоните EntityUtils.toString(response.getEntity())
таким же образом.
Чтобы получить код состояния ответа, вы можете использовать HttpResponse.getStatusLine().getStatusCode()
и сравнить с одним из статических целых чисел в классе HttpStatus
. Например. код «403» равен HttpStatus.SC_FORBIDDEN
. Вы можете выполнять определенные действия в зависимости от вашего приложения в зависимости от возвращенного кода состояния.