Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

getting the response body of HttpResponse

I have done this:

response = httpclient.execute(targetHost, httppost); 
    if(response.getStatusLine().getStatusCode() == 200)
                        {
    HttpEntity entity = response.getEntity();
    System.out.println("Entity:"+entity);
  if (entity != null) 
                            {
        String responseBody = EntityUtils.toString(entity);
        System.out.println("finalResult"+responseBody.toString());
                            }

The thing about it is that the first println() displays this: org.apache.http.conn.BasicManagedEntity@481e8150 which is good.

But the second System.out.println("finalResult"+responseBody.toString()); displays only this finalResult. So what is wrong with this:

String responseBody = EntityUtils.toString(entity);
            System.out.println("finalResult"+responseBody.toString());

???

IMPORTANT This HttpEntity entity = response.getEntity(); is equal to org.apache.http.conn.BasicManagedEntity@481e8150. SO the problem must be here:

String responseBody = EntityUtils.toString(entity);.

Please help!!!

like image 929
adrian Avatar asked May 21 '12 11:05

adrian


1 Answers

First, see if your server is not returning blank response:

response.getEntity().getContentLength();  //it should not be 0

Second, try the following to convert response into string:

StringBuilder sb = new StringBuilder();
try {
    BufferedReader reader = 
           new BufferedReader(new InputStreamReader(entity.getContent()), 65728);
    String line = null;

    while ((line = reader.readLine()) != null) {
        sb.append(line);
    }
}
catch (IOException e) { e.printStackTrace(); }
catch (Exception e) { e.printStackTrace(); }


System.out.println("finalResult " + sb.toString());
like image 135
waqaslam Avatar answered Oct 25 '22 02:10

waqaslam