首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从Java HttpClient获取重定向url

从Java HttpClient获取重定向URL的方法如下:

  1. 首先,创建一个HttpClient对象:
代码语言:txt
复制
HttpClient httpClient = HttpClient.newBuilder()
        .followRedirects(HttpClient.Redirect.NORMAL)
        .build();
  1. 创建一个HttpRequest对象,设置请求的URL和方法:
代码语言:txt
复制
HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("http://example.com"))
        .GET()
        .build();
  1. 发送请求并获取响应:
代码语言:txt
复制
HttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());
  1. 检查响应的状态码,如果是重定向(3xx),则获取重定向的URL:
代码语言:txt
复制
if (response.statusCode() >= 300 && response.statusCode() < 400) {
    String redirectUrl = response.headers().firstValue("Location").orElse("");
    System.out.println("重定向URL: " + redirectUrl);
}

完整的代码示例:

代码语言:txt
复制
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class HttpClientExample {
    public static void main(String[] args) throws Exception {
        HttpClient httpClient = HttpClient.newBuilder()
                .followRedirects(HttpClient.Redirect.NORMAL)
                .build();

        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create("http://example.com"))
                .GET()
                .build();

        HttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());

        if (response.statusCode() >= 300 && response.statusCode() < 400) {
            String redirectUrl = response.headers().firstValue("Location").orElse("");
            System.out.println("重定向URL: " + redirectUrl);
        }
    }
}

这段代码使用Java 11中引入的新的HttpClient API来发送HTTP请求,并通过检查响应的状态码和获取响应头中的Location字段来获取重定向的URL。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 领券