java httprequest getting the body from the request

Vihaan Verma picture Vihaan Verma · Sep 21, 2012 · Viewed 10.4k times · Source

I receive a post request from client. This request contains some json data which I want to part on the server side. I have created the server using httpcore. HttpRequestHandler is used for handling the request. Here is the code I thought would work

    HttpEntity entity = ((HttpEntityEnclosingRequest)request).getEntity();

                    InputStream inputStream = entity.getContent();

                    String str = inputStream.toString();

                    System.out.println("Post contents: " + str);*/

But I cant seem to find a way to get the body of the request using the HttpRequest object. How can I extract the body from the request object ? Thanks

Answer

Mikita Belahlazau picture Mikita Belahlazau · Sep 21, 2012

You should use EntityUtils and it's toString method:

String str = EntityUtils.toString(entity);

getContent returnes stream and you need to read all data from it manually using e.g. BufferedReader. But EntityUtils does it for you.
You can't use toString on stream, because it returns string representation of the object itself not it's data.
One more thing: AFAIK GET requests can't contain body so it seems you get POST request from client.