首页
学习
活动
专区
工具
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。

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

相关·内容

8分51秒

day04_Java基本语法/05-尚硅谷-Java语言基础-使用Scannner从键盘获取int型数据

8分51秒

day04_Java基本语法/05-尚硅谷-Java语言基础-使用Scannner从键盘获取int型数据

8分51秒

day04_Java基本语法/05-尚硅谷-Java语言基础-使用Scannner从键盘获取int型数据

17分26秒

day04_Java基本语法/06-尚硅谷-Java语言基础-使用Scannner从键盘获取多种类型数据

17分26秒

day04_Java基本语法/06-尚硅谷-Java语言基础-使用Scannner从键盘获取多种类型数据

17分26秒

day04_Java基本语法/06-尚硅谷-Java语言基础-使用Scannner从键盘获取多种类型数据

29分34秒

1.尚硅谷全套JAVA教程--基础必备(67.32GB)/尚硅谷Java入门教程,java电子书+Java面试真题(2023新版)/08_授课视频/43-流程控制-使用Scanner类从键盘获取数据.mp4

13分38秒

28-尚硅谷-微信支付-基础支付APIv3-获取验签器和HttpClient

11分49秒

1.尚硅谷全套JAVA教程--基础必备(67.32GB)/尚硅谷Java入门教程,java电子书+Java面试真题(2023新版)/08_授课视频/44-流程控制-如何获取一个随机数.mp4

2分40秒

第二十五章:JVM运行时参数/73-通过Java代码获取JVM参数

20分16秒

第1章:JVM与Java体系结构/02-如何看待Java上层技术与JVM

16分8秒

人工智能新途-用路由器集群模仿神经元集群

领券