请求头怎么写 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 | 指定请求的来源 |