java重定向设置cookie
时间: 2023-11-18 09:43:10 浏览: 91
在 Java 中,可以使用 `java.net.HttpURLConnection` 类来发送 HTTP 请求并设置 cookie。下面是一个简单示例:
```java
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import java.util.Map;
public class RedirectWithCookie {
public static void main(String[] args) throws Exception {
String urlString = "http://example.com";
URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 设置 cookie
String cookie = "key=value";
conn.setRequestProperty("Cookie", cookie);
// 允许重定向
conn.setInstanceFollowRedirects(true);
conn.connect();
// 获取重定向后的 URL 和响应头部信息
int responseCode = conn.getResponseCode();
String location = conn.getHeaderField("Location");
Map<String, List<String>> headerFields = conn.getHeaderFields();
// 输出结果
System.out.println("Response code: " + responseCode);
System.out.println("Location: " + location);
System.out.println("Header fields:");
for (Map.Entry<String, List<String>> entry : headerFields.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
}
```
在上面的示例中,我们首先创建了一个 `URL` 对象,然后使用 `HttpURLConnection` 打开连接。接着,我们设置 cookie,允许重定向,并连接到远程服务器。
如果重定向成功,我们可以使用 `getResponseCode()` 方法获取响应代码,使用 `getHeaderField("Location")` 方法获取重定向后的 URL,以及使用 `getHeaderFields()` 方法获取响应头部信息。最后,我们将这些信息输出到控制台。
阅读全文