HttpComponents —— HTTP响应(HttpResponse)

目录:

         HTTP响应是由服务器在接收和解释请求报文之后返回发送给客户端的报文。响应报文的第一行包含了协议版本,之后是数字状态码和相关联的文本段。

HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1,

HttpStatus.SC_OK, "OK");

System.out.println(response.getProtocolVersion());

System.out.println(response.getStatusLine().getStatusCode());

System.out.println(response.getStatusLine().getReasonPhrase());

System.out.println(response.getStatusLine());

输出:

HTTP/1.1

200

OK

HTTP/1.1 200 OK

 


响应控制器

         控制响应的最简便和最方便的方式是使用ResponseHandler接口。这个放完完全减轻了用户关于连接管理的担心。当使用ResponseHandler时,HttpClient将会自动关注并保证释放连接到连接管理器中去,而不管请求执行是否成功或引发了异常。

HttpGet httpGet = new HttpGet("http://localhost/");

ResponseHandler<byte[]> handler = new ResponseHandler<byte[]>() {

public byte[] handleResponse(HttpResponse response)

throws ClientProtocolException, IOException {

HttpEntity entity = response.getEntity();

if (entity != null) {

return EntityUtils.toByteArray(entity);

} else {

return null;

}

}

};

byte[] response = client.execute(httpGet, handler);

  • 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、付费专栏及课程。

余额充值