首页 >Java >java教程 >如何设置Java URLConnection的用户代理?

如何设置Java URLConnection的用户代理?

Patricia Arquette
Patricia Arquette原创
2024-12-06 07:21:12515浏览

How to Set the User Agent of a Java URLConnection?

设置Java URLConnection的用户代理

在Java中使用URLConnection解析网页时,正确设置用户代理至关重要。但是,默认情况下,指定的用户代理会附加“Java/1.5.0_19”。当尝试隐藏或模拟特定浏览器时,这可能是一个问题。

澄清和解决

在 Java 版本 1.6.30 及更高版本中,用户代理的问题追加不再存在,并且 setRequestProperty("User-Agent", "Mozilla ...") 按预期工作。为了验证这一点,可以设置端口侦听器来捕获 HTTP 标头。

在未使用 setRequestProperty 的情况下发送请求时,HTTP 标头将包括:

User-Agent: Java/1.6.0_30

但是,当setRequestProperty 用于设置特定的用户代理,HTTP 标头将反映指定的value:

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

示例代码

以下代码提供了如何设置用户代理和检索网页内容类型的完整示例:

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

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