微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – 获取HttpResponse的响应体

我这样做了:

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

关于它的事情是第一个println()显示:org.apache.http.conn.BasicManagedEntity@481e8150这是好的.

但第二个System.out.println(“finalResult”responseBody.toString());仅显示此finalResult.那么这有什么问题:

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

???

重要信息此httpentity实体= response.getEntity();等于org.apache.http.conn.BasicManagedEntity@481e8150.所以问题必须在这里

String responseBody = EntityUtils.toString(entity);.

请帮忙!!!

解决方法:

首先,查看您的服务器是否未返回空白响应:

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

其次,尝试以下方法将响应转换为字符串:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐