首页 > 图灵资讯 > 技术篇>正文

Java 获取Response的头部信息

2024-01-28 16:37:25

Java 获取Response的头部信息

在进行网络请求时,我们经常需要获取服务器返回的响应头部信息。Java 提供多种获取方式的方法 Response 本文将介绍一些常用的方法和示例代码。

1. HttpURLConnection

在 Java 中,可使用 java.net.HttpURLConnection 类来发起 HTTP 请求并获取 Response 头部信息。以下是一个使用 HttpURLConnection 获取头部信息的示例代码:

import java.io.IOException;import java.net.HttpURLConnection;import java.net.URL;import java.util.List;import java.util.Map;public class HttpURLConnectionExample {    public static void main(String[] args) throws IOException {        String url = "        HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();        connection.setRequestMethod("GET");                // 发送请求        connection.connect();                // 获取头部信息        Map<String, List<String>> headers = connection.getHeaderFields();                // 打印头部信息        for (Map.Entry<String, List<String>> entry : headers.entrySet()) {            String key = entry.getKey();            List<String> values = entry.getValue();            System.out.println(key + ": " + values);        }                // 断开连接        connection.disconnect();    }}

在上述代码中,我们首先创建一个代码 HttpURLConnection 对象设置请求方法 GET。然后,调用 connect 方法发送请求。之后,使用 getHeaderFields 该方法获取响应的头部信息,并返回一个方法 Map<String, List<String>> 对象,键是头部字段的名称,值是字符串列表,表示字段值。最后,我们遍历了这一点 Map 并打印头部信息。

2. HttpClient

除了 HttpURLConnection,Java 还提供了 HttpClient 类库来发送 HTTP 请求。以下是使用 HttpClient 获取头部信息的示例代码:

import java.io.IOException;import java.util.List;import org.apache.http.Header;import org.apache.http.HttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.HttpClientBuilder;public class HttpClientExample {    public static void main(String[] args) throws IOException {        String url = "        HttpGet request = new HttpGet(url);                // 发送请求        HttpResponse response = HttpClientBuilder.create().build().execute(request);                // 获取头部信息        Header[] headers = response.getAllHeaders();                // 打印头部信息        for (Header header : headers) {            String name = header.getName();            String value = header.getValue();            System.out.println(name + ": " + value);        }    }}

在上述代码中,我们创建了一个代码 HttpGet 并使用请求 HttpClientBuilder 创建一个 HttpClient 对象发送请求。然后,调用 execute 该方法发送请求并获得响应。最后,使用 getAllHeaders 该方法获取头部信息,并返回一个方法 Header[] 数组,每个元素都表示一个头部字段。我们遍历这个数组,并打印头部信息。

3. Apache HttpComponents

假如你用的是 Maven 或 Gradle 通过引入施工工具,可以引入其他施工工具 Apache HttpComponents 库来获取 Response 头部信息。以下是示例代码:

import java.io.IOException;import java.util.List;import org.apache.http.Header;import org.apache.http.HttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.util.EntityUtils;public class ApacheHttpComponentsExample {    public static void main(String[] args) throws IOException {        String url = "                try (CloseableHttpClient client = HttpClients.createDefault()) {            HttpGet request = new HttpGet(url);                        // 发送请求            HttpResponse response = client.execute(request);                        // 获取头部信息            Header[] headers = response.getAllHeaders();                        // 打印头部信息            for (Header header : headers) {                String name = header.getName();                String value = header.getValue();                System.out.println(name + ": " + value);            }                        // 获取响应体            String body = EntityUtils.toString(response.getEntity());            System.out.println("响应体: " + body);        }    }}

在上述代码中,我们创建了一个代码 CloseableHttpClient 物体,并使用 HttpClients 类的 createDefault 该方法获得默认配置的客户对象。然后,我们创建了一个 HttpGet 并使用请求 client 对象的 execute 该方法发送请求并获得响应。然后,使用 getAllHeaders 获取头部信息并打印每个头部字段的方法。最重要的

上一篇 Java 剔除重叠的时间区间
下一篇 Java 将数据库中存的文件

文章素材均来源于网络,如有侵权,请联系管理员删除。