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