httpResponse 如何获得响应结果信息
时间: 2024-03-21 11:40:02 浏览: 62
在 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");
}
```
阅读全文