java重定向并设置请求头
时间: 2024-12-06 14:24:12 浏览: 16
在Java中,你可以通过HttpURLConnection或者HttpClient等库来发送HTTP请求,并进行重定向以及设置请求头。以下是使用HttpURLConnection的一个例子:
```java
import java.net.HttpURLConnection;
import java.net.URL;
URL url = new URL("http://example.com/original");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET"); // 设置请求方法为GET
// 设置请求头,例如设置User-Agent
connection.setRequestProperty("User-Agent", "Mozilla/5.0");
try {
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_MOVED_TEMP || responseCode == HttpURLConnection.HTTP_MOVED_PERM) {
String locationHeader = connection.getHeaderField("Location"); // 获取重定向位置
url = new URL(locationHeader);
connection.disconnect(); // 断开原始连接
connection = (HttpURLConnection) url.openConnection();
// 重复上述步骤,再次设置请求方法和头部信息
}
// ...处理响应...
} finally {
connection.disconnect(); // 确保关闭连接
}
```
在这个例子中,如果服务器返回3xx状态码表示重定向,我们获取新的URL,并重新创建一个HttpURLConnection对象,继续发送请求。同时,每次连接都会包含之前设置的请求头。
阅读全文