自定义 Java URLConnections 的用户代理
使用 Java 的 URLConnection 建立与网页的连接时,您可能希望设置自定义用户代理人。这通常用于模仿特定 Web 浏览器的行为或识别您的应用程序。但是,尝试设置非默认用户代理通常会导致附加默认值。
解决方案:
在早期版本的 Java 中,设置自定义用户代理通过 setRequestProperty("User-Agent", "custom_agent") 在末尾附加“Java/xx”。此问题已在 Java 1.6.30 及更高版本中得到解决。
示例:
import java.net.URL; import java.net.URLConnection; public class CustomUserAgent { public static void main(String[] args) throws Exception { URL url = new URL("http://example.com"); URLConnection connection = url.openConnection(); connection.setRequestProperty("User-Agent", "Mozilla/5.0"); System.out.println(connection.getRequestProperty("User-Agent")); } }
在 Java 1.6.30 或更高版本中,此代码将输出“Mozilla /5.0" 无附加"Java/xx".
Netcat 验证:
要验证是否正在使用自定义用户代理,您可以使用 netcat 监听端口:
$ nc -l -p 8080
执行上述代码时,您应该在收到的 HTTP 标头中看到自定义用户代理netcat。
替代解决方案:
如果您仍然遇到在旧 Java 版本中附加“Java/xx”的问题,您可以尝试使用第三方 HTTP允许您完全控制 User-Agent 标头的库。
以上是如何为 Java URLConnections 设置自定义用户代理?的详细内容。更多信息请关注PHP中文网其他相关文章!