java httprequest получение тела из запроса
Я получаю запрос post от клиента. Этот запрос содержит некоторые данные json, которые я хочу разделить на стороне сервера. Я создал сервер с помощью httpcore. HttpRequestHandler используется для обработки запроса. Вот код, который я думал, будет работать
HttpEntity entity = ((HttpEntityEnclosingRequest)request).getEntity();
InputStream inputStream = entity.getContent();
String str = inputStream.toString();
System.out.println("Post contents: " + str);*/
но я не могу найти способ получить тело запроса с помощью объекта HttpRequest. Как извлечь тело из объекта запроса ? Спасибо
2 ответов
вы должны использовать EntityUtils
и toString способ:
String str = EntityUtils.toString(entity);
getContent
returnes поток, и вам нужно прочитать все данные из него вручную, используя, например,BufferedReader
. Но!--1--> делает это для вас.
Вы не можете использовать toString
on stream, потому что он возвращает строковое представление самого объекта, а не его данных.
Еще одна вещь: запросы AFAIK GET не могут содержать тело, поэтому, похоже, вы получаете запрос POST от клиента.
... и за MultipartEntity
используйте этот:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
entity.writeTo(baos);
} catch (IOException e) {
e.printStackTrace();
}
String text = new String(baos.toByteArray());