0

我在玩 Java 中的 HTTP POST 和 GET 请求。我只是想模仿我的浏览器使用 Java 发送的请求(我正在使用 URLConnection 类)。但是,当我使用 Wireshark 分析浏览器发送的数据包和通过 Java 发送的数据包时,我发现了一个很大的不同:

http://i.stack.imgur.com/n8OvR.png

http://i.stack.imgur.com/zPBPR.png

(打开链接查看图片)

当我发送 HTTP POST/GET 时,我使用的工具(浏览器或 Java)会发送有关自身的信息。但是,我想通过 Java 发送与通过浏览器完全相同的数据包。有没有办法做到这一点?如何隐藏发件人(在本例中为 Java)信息?谢谢!

4

2 回答 2

1

抱歉,另一页上唯一好的答案在底部。

setRequestProperty("User-Agent", "");请参阅URLConnection的 JDocs

您也可以将其用于任何其他标题,例如Accept-Language. 如果您设置为可能会导致服务器对 Java 无法正确处理的内容进行 gzip 压缩,请小心Accept-Encoding,您将需要执行类似的操作

我不确定为什么建议设置系统属性。

于 2012-05-22T17:36:47.320 回答
0

如果您想使用纯 Java 发送完全相同的数据包,那么您不能。

但是这个库可能会有所帮助: http: //www.savarese.com/software/rocksaw/

于 2012-05-22T17:47:30.313 回答