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

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

Susan Sarandon
Susan Sarandon原创
2024-11-17 13:12:02137浏览

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 抓取或其他通信任务达到所需的行为。

以上是如何在没有 Java 运行时标识符的情况下为 Java 中的 URLConnections 设置自定义用户代理?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn