首页 >Java >java教程 >如何在不添加 Java 的情况下设置 Java URLConnection 的用户代理?

如何在不添加 Java 的情况下设置 Java URLConnection 的用户代理?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-30 20:59:12553浏览

How to Set the User Agent of a Java URLConnection Without Java Additions?

在不添加 Java 的情况下设置 Java URLConnection 的用户代理

在 Java 中,设置 URLConnection 的 User-Agent 属性通常会添加“ Java/版本”到指定代理字符串的末尾。要实现纯用户指定的 User-Agent,需要执行以下步骤:

Java 1.6.30 及更高版本

在 Java 版本 1.6.30 及更高版本中, setRequestProperty("User-Agent", "user-agent-string") 设置代理,无需添加 Java。这可以通过使用 netcat 等端口侦听器侦听传入请求来确认:

$ nc -l -p 8080

如果没有 setRequestProperty,标头将如下所示:

GET /foobar HTTP/1.1
User-Agent: Java/1.6.0_30
Host: localhost:8080
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive

使用 setRequestProperty,用户 -代理将正确设置:

GET /foobar HTTP/1.1
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
Host: localhost:8080
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive

Full示例:

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

public class TestUrlOpener {

    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 的情况下设置 Java URLConnection 的用户代理?的详细内容。更多信息请关注PHP中文网其他相关文章!

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