Я пытаюсь получить строку json из HTTP-запроса на публикацию в моем приложении andorid.Используя решение из этого сообщения , код также показан здесь.
public void post(String completeUrl, String body) {
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(completeUrl);
httpPost.setHeader("Content-type", "application/json");
try {
StringEntity stringEntity = new StringEntity(body);
httpPost.getRequestLine();
httpPost.setEntity(stringEntity);
httpClient.execute(httpPost);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
Я вызываю сообщение изнутри асинхронной задачи (используя для обработки доступа к сети в отдельном потоке).
String result;
result = post("https://StringURLGoesHere.com/", "jsonStringBodyGoesHere");
Согласно документации для класса HttpClient , для обработки ответа мне необходимо добавить второй параметр ResponseHandler в метод HttpClient.execute ().
public interface ResponseHandler<T> {
T handleResponse(HttpResponse var1) throws ClientProtocolException, IOException;
}
Я сделал так:
public String post(String completeUrl, String body) {
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(completeUrl);
httpPost.setHeader("Content-type", "application/json");
try {
StringEntity stringEntity = new StringEntity(body);
httpPost.getRequestLine();
httpPost.setEntity(stringEntity);
ResponseHandler<String> reply = new ResponseHandler<String>() {
@Override
public String handleResponse(HttpResponse httpResponse) throws ClientProtocolException, IOException {
return httpResponse.toString();
}
};
return httpClient.execute(httpPost,reply);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
Я показываю строку в виде текста в моем приложении.Он гласит:
org.apache.http.message.BasicHttpResponse@1446ef0c
или
org.apache.http.message.BasicHttpResponse@b83bd3d
или
org.apache.http.message.BasicHttpResponse@1c4c9e1d
и так далее.
Почему я получаю этот возврат в виде строки?Что следует изменить, чтобы получить строку объекта json, возвращаемую после записи?