”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何在没有 Java 运行时标识符的情况下为 Java 中的 URLConnections 设置自定义用户代理?

如何在没有 Java 运行时标识符的情况下为 Java 中的 URLConnections 设置自定义用户代理?

发布于2024-12-22
浏览:934

How to Set a Custom User Agent for URLConnections in Java without the Java Runtime Identifier?

在 Java 中为 URLConnections 自定义用户代理

在 Java 中使用 URLConnection 检索 Web 内容时,通常需要设置自定义用户代理准确的网站抓取和用户模拟。但是,默认的 Java 运行时将其自己的标识符附加到用户代理字符串,这在某些情况下可能并不理想。

查询

Java 开发人员寻求帮助设置不带运行时附加的“Java/1.5.0_19”后缀的用户代理。用户提供了一个代码片段,说明他们如何尝试使用 setRequestProperty() 设置用户代理。

解决方案

幸运的是,在 Java 1.6.30 及更高版本中,通过 setRequestProperty("User-Agent", "") 设置用户代理可以完美地工作,无需添加任何额外的 Java 运行时信息。为了演示这一点,开发人员使用 netcat 侦听传入的 HTTP 请求,并观察到自定义用户代理已成功发送,没有 Java 后缀。

完整实现

import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;

public class CustomUserAgent {

    public static void main(String[] args) throws IOException {
        URL url = new URL("http://localhost:8080/foobar");
        URLConnection hc = url.openConnection();
        hc.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2");

        System.out.println(hc.getContentType());
    }

}

通过利用这种方法,开发人员可以有效地在 Java 中为其 URLConnections 设置用户代理,而无需任何不需要的 Java 特定添加,从而确保其 Web 抓取或其他通信任务达到所需的行为。

最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3