将服务器get到的响应打印,得到HttpResponse的响应主体

6 个答案:

答案 0 :(得分:24)

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

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

答案 1 :(得分:6)

你可以使用这个:

String s = EntityUtils.toString(httpRes.getEntity());

答案 2 :(得分:3)

org.apache.http.conn.BasicManagedEntity@f8a5dec

当我们直接打印HttpEntity对象时,会出现

响应。例如:

HttpEntity httpEntity=httpResponse.getEntity();

现在要从服务器获取实际响应,我们需要执行以下步骤:

public String convertStreamtoString(InputStream is){

String line="";

String data="";

try{

BufferedReader br=new BufferedReader(new InputStreamReader(is));

while((line=br.readLine())!=null){

data+=line;

}

}

catch(Exception e){

e.printStackTrace();

}

return data;

}

只需调用上面的方法并将httpEntity作为参数传递。享受!!

答案 3 :(得分:1)

试试这个:

HttpEntity entity = response.getEntity();

final String content;

try

{

content = EntityUtils.toString(entity);

runOnUiThread(new Runnable()

{

@Override

public void run()

{

webView.loadData(content, "text/html", "UTF-8");

}

});

}

答案 4 :(得分:1)

试试这个:

BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

String body = "";

while ((body = rd.readLine()) != null)

{

Log.e("HttpResponse", body);

}

答案 5 :(得分:0)

试试这个

BufferedReader in = new BufferedReader(new InputStreamReader(response

.getEntity().getContent()));

//SB to make a string out of the inputstream

StringBuffer sb = new StringBuffer("");

String line = "";

String NL = System.getProperty("line.separator");

while ((line = in.readLine()) != null) {

sb.append(line + NL);

}

in.close();

//the json string is stored here

String result = sb.toString();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Java 中,可以使用 Apache HttpComponents 提供的 HttpClient 来发送 HTTP 请求和接收 HTTP 响应。当我们发送一个 HTTP 请求后,服务器会返回一个 HTTP 响应,我们可以通过 HttpResponse 类来获取响应结果信息。具体步骤如下: 1. 通过 HttpClient 发送 HTTP 请求,获取 HttpResponse 对象。 ```java CloseableHttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet("http://www.example.com"); HttpResponse httpResponse = httpClient.execute(httpGet); ``` 2. 通过 HttpResponse 对象获取响应结果信息,包括: - 响应状态行信息(协议版本、状态码和状态描述):`httpResponse.getStatusLine()` - 响应头信息:`httpResponse.getAllHeaders()` - 响应体信息:`EntityUtils.toString(httpResponse.getEntity(), "UTF-8")` ```java // 获取响应状态行信息 StatusLine statusLine = httpResponse.getStatusLine(); int statusCode = statusLine.getStatusCode(); String reasonPhrase = statusLine.getReasonPhrase(); // 获取响应头信息 Header[] headers = httpResponse.getAllHeaders(); for (Header header : headers) { String name = header.getName(); String value = header.getValue(); System.out.println(name + ": " + value); } // 获取响应体信息 String responseBody = EntityUtils.toString(httpResponse.getEntity(), "UTF-8"); ``` 注意:获取响应体信息前,需要先判断响应实体是否为空,否则会抛出空指针异常。 ```java HttpEntity entity = httpResponse.getEntity(); if (entity != null) { String responseBody = EntityUtils.toString(entity, "UTF-8"); } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值