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の JDoc を参照してください

などの他のヘッダーにも使用できますAccept-Language。asを設定すると、Java が正しく処理できないものをサーバーが gzip する可能性があるので注意してください。このAccept-Encodingようなことを行う必要があります。

システム プロパティの設定を提案している理由がわかりません。

于 2012-05-22T17:36:47.320 に答える
0

純粋な Java を使用してまったく同じパケットを送信したい場合は、それはできません。

しかし、このライブラリが役立つかもしれません: http://www.savarese.com/software/rocksaw/

于 2012-05-22T17:47:30.313 に答える