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

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

相关·内容

php – cURL从重定向获取url

我目前正在使用cURL尝试网站刮刀的重定向获取URL.我只需要网站上的网址.我在过去几天研究过stackoverflow和其他网站,但都没有成功.我目前使用的代码来自这个网站: $url = "...当服务器检查用户代理字符串时,只有当服务器看到“有效”(根据服务器)用户代理时,它才会响应302重定向状态代码.任何“无效”用户代理都不会收到302重定向状态代码响应或Location:标头....(注意:在下面的代码中,提供的实际URL已被示例替换.)...假设http://www.example.com的服务器检查用户代理字符串,并且http://www.example.com/product/123/重定向到http://www.example.org...php $url = 'http://www.example.com/product/123/'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_FOLLOWLOCATION

2.1K10
  • 如何使用 Go 语言获取 URL

    在 Web 开发和网络爬虫等领域,经常需要获取和处理 URL(统一资源定位符)。Go 语言提供了丰富的标准库来处理 URL,使得获取和解析 URL 变得简单而高效。...本文将介绍如何使用 Go 语言获取 URL 的详细步骤,并提供一些实用的示例。图片一、URL 的基本概念在开始之前,我们先来了解 URL 的基本概念。...我们可以使用该包中的函数来获取 URL 中的各个部分,或者构建新的 URL。...然后,我们可以通过调用 Get 方法来获取指定参数的值。三、实际示例:使用 Go 获取网页内容现在,我们将结合实际示例来演示如何使用 Go 语言获取网页内容。...总结本文介绍了如何使用 Go 语言获取 URL。我们学习了如何解析和构建 URL,以及如何获取 URL 中的各个部分和查询参数。此外,我们还提供了一个实际示例,展示了如何使用 Go 语言获取网页内容。

    72530

    Python爬虫遇到重定向URL问题时如何解决?

    其中,如果处理不当开发,可能会导致爬虫无法获取所需的数据,从而影响爬虫的效果。...防止爬虫:有些网站为了防止被爬虫程序访问,会设置重定向规则,使得爬虫程序无法直接获取所需的数据。网站安全:有些网站为了安全考虑对URL进行重定向,以确保用户访问的是安全的页面。...)print(response.url)在上面的代码中,我们首先使用requests.get方法来获取URL的响应。...,我们首先发送一个不允许重定向的请求,如果返回的状态码是302,表示发生了重定向,我们可以通过response.headers['Location']来获取重定向后的新URL ,然后发送新的请求来获取数据...总结在Python爬虫开发中,处理重定向URL问题是非常的。我们使用可以请求库来处理重定向,通过查看重定向后的重要URL重定向历史来了解重定向的情况,从而确保爬虫能够正确获取所需的数据。

    76210

    如何在Apache Web服务器上重定向URL

    Apache提供了许多“重定向”配置说明,这些说明允许管理员在配置文件中指定资源以重定向到另一个URL重定向请求后,服务器将返回请求结果,该结果指示客户端启动对目标资源新位置的第二个请求。...重定向可以告诉客户端所请求的页面已临时或永久移动。 Apache提供了轻松支持这些功能的工具。本指南描述了重定向配置说明,如何设置各种重定向选项以及如何将资源请求类重定向到新位置。...重定向 重定向配置指令可以位于主服务器配置文件中,但是我们建议您将其保留在虚拟主机条目或目录块中。您也可以在.httaccess文件中声明重定向语句。...以下是重定向指令的示例: Redirect /jiumulu http://linuxidc.com/xinmulu/ 如果未给出参数,则发送临时(例如302)重定向状态。...如果是“leaved”重定向,请忽略最终网址。 Apache还提供了另外两个永久性和临时性重定向指令,它们更加清晰。

    1.8K20

    如何 100 亿 URL 中找出相同的 URL

    来源 | https://doocs.github.io/advanced-java/ 题目描述 给定 a、b 两个文件,各存放 50 亿个 URL,每个 URL 各占 64B,内存限制是 4G。...请找出 a、b 两个文件共同的 URL。 解答思路 每个 URL 占 64B,那么 50 亿个 URL占用的空间大小约为 320GB。...思路如下 : 首先遍历文件 a,对遍历到的 URL 求 hash(URL) % 1000 ,根据计算结果把遍历到的 URL 存储到 a0, a1, a2, ..., a999,这样每个大小约为 300MB...然后遍历 bi 中每个 URL,看在 HashSet 集合中是否存在,若存在,说明这就是共同的 URL,可以把这个 URL 保存到一个单独的文件中。...好多大咖曾看他的书学习Java,如今这个男人的新作来了! Lombok!代码简洁神器还是代码“亚健康”元凶?

    2.9K30

    面试:如何 100 亿 URL 中找出相同的 URL

    ---- 来源:8rr.co/FR7V 题目描述 给定 a、b 两个文件,各存放 50 亿个 URL,每个 URL 各占 64B,内存限制是 4G。请找出 a、b 两个文件共同的 URL。...解答思路 每个 URL 占 64B,那么 50 亿个 URL占用的空间大小约为 320GB。...思路如下 : 首先遍历文件 a,对遍历到的 URL 求 hash(URL) % 1000 ,根据计算结果把遍历到的 URL 存储到 a0, a1, a2, ..., a999,这样每个大小约为 300MB...这样处理过后,所有可能相同的 URL 都在对应的小文件中,即 a0 对应 b0, ..., a999 对应 b999,不对应的小文件不可能有相同的 URL。...然后遍历 bi 中每个 URL,看在 HashSet 集合中是否存在,若存在,说明这就是共同的 URL,可以把这个 URL 保存到一个单独的文件中。

    4.5K10

    面试:如何 100 亿 URL 中找出相同的 URL

    来源:8rr.co/FR7V 题目描述 给定 a、b 两个文件,各存放 50 亿个 URL,每个 URL 各占 64B,内存限制是 4G。请找出 a、b 两个文件共同的 URL。...解答思路 每个 URL 占 64B,那么 50 亿个 URL占用的空间大小约为 320GB。...思路如下 : 首先遍历文件 a,对遍历到的 URL 求 hash(URL) % 1000 ,根据计算结果把遍历到的 URL 存储到 a0, a1, a2, ..., a999,这样每个大小约为 300MB...这样处理过后,所有可能相同的 URL 都在对应的小文件中,即 a0 对应 b0, ..., a999 对应 b999,不对应的小文件不可能有相同的 URL。...然后遍历 bi 中每个 URL,看在 HashSet 集合中是否存在,若存在,说明这就是共同的 URL,可以把这个 URL 保存到一个单独的文件中。

    2.3K20
    领券