在 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