请求头怎么写 Java

在使用 Java 发起 HTTP 请求时,我们需要设置请求头(Request Headers)来传递一些额外的信息给服务器。请求头包含了一些重要的参数,如用户代理(User-Agent)、身份验证信息等。本文将介绍如何使用 Java 来设置请求头,并提供代码示例。

1. HttpURLConnection 类

Java 提供了 java.net.HttpURLConnection 类来进行 HTTP 请求的处理。通过该类,我们可以构建 HTTP 请求、设置请求头、发送请求以及获取服务器的响应。

下面是一个使用 HttpURLConnection 类发送 GET 请求的示例:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class HttpRequestExample {

    public static void main(String[] args) throws Exception {
        // 创建 URL 对象
        URL url = new URL("

        // 打开连接
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();

        // 设置请求方法为 GET
        connection.setRequestMethod("GET");

        // 设置请求头
        connection.setRequestProperty("User-Agent", "Mozilla/5.0");

        // 发送请求
        int responseCode = connection.getResponseCode();

        // 打印响应码
        System.out.println("Response Code: " + responseCode);

        // 读取响应数据
        BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        String line;
        StringBuffer response = new StringBuffer();
        while ((line = reader.readLine()) != null) {
            response.append(line);
        }
        reader.close();

        // 打印响应数据
        System.out.println("Response: " + response.toString());

        // 关闭连接
        connection.disconnect();
    }
}

在上述代码示例中,我们通过 setRequestMethod 方法将请求方法设置为 GET,通过 setRequestProperty 方法设置了一个请求头 "User-Agent",并且将其值设置为 "Mozilla/5.0"。然后发送请求并获取响应。

2. HttpClient 类(Apache HttpClient)

除了使用 HttpURLConnection 类外,我们还可以使用 Apache HttpClient 来发送 HTTP 请求。Apache HttpClient 是一个功能强大且易于使用的 Java HTTP 客户端库。

下面是一个使用 Apache HttpClient 发送 GET 请求的示例:

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClientBuilder;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class HttpRequestExample {

    public static void main(String[] args) throws Exception {
        // 创建 HttpClient 对象
        HttpClient httpClient = HttpClientBuilder.create().build();

        // 创建 HttpGet 对象
        HttpGet httpGet = new HttpGet("

        // 设置请求头
        httpGet.addHeader("User-Agent", "Mozilla/5.0");

        // 发送请求
        HttpResponse response = httpClient.execute(httpGet);

        // 打印响应码
        System.out.println("Response Code: " + response.getStatusLine().getStatusCode());

        // 读取响应数据
        BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
        String line;
        StringBuffer result = new StringBuffer();
        while ((line = reader.readLine()) != null) {
            result.append(line);
        }
        reader.close();

        // 打印响应数据
        System.out.println("Response: " + result.toString());
    }
}

在上述代码示例中,我们通过 addHeader 方法向请求中添加了一个请求头 "User-Agent",并将其值设置为 "Mozilla/5.0"。然后发送请求并获取响应。

表格:常用请求头

下表列出了一些常用的请求头及其用途:

请求头 用途
User-Agent 指定客户端的用户代理
Accept 指定客户端能够接受的内容类型
Content-Type 指定发送请求的实体内容类型
Authorization 指定身份验证信息
Cookie 指定客户端的 cookie
Referer 指定引用页面的 URL
If-Modified-Since 指定上次修改时间,用于条件 GET 请求
If-None-Match 指定 ETag 值,用于条件 GET 请求
Cache-Control 指定缓存策略
X-Requested-With 指定 XMLHttpRequest 的请求标志
Origin 指定请求的来源

引用形式的描述信息