2011-01-31 4 views
6

新しい(Apache Commons httpライブラリを使用)と古い(厳密にはJava 1.4 APIを使用)の両方のJavaコードがあり、新しいApacheの共通ライブラリを使用して古いコードを書き直そうとしています。しかし、それは動作していないと私は理由を見つけるために苦労しています。リクエストは送信されていますが、アクセスしていない受信側のサーバーで新しいコードがタイムアウトします。古いコードが動作するので、私はhttp要求を掘り下げてしまったに違いありません。何が送信されているかを正確に調べるために、ある種のHTTPトラフィックスニファを使用すると非常に便利です。私のJavaコードから送信されたhttpトラフィックを分析する最も良い方法は?

WebからいくつかのHTTPスニファをダウンロードしましたが(this onethat one)、Javaコードから送信されたhttpデータはキャプチャされません(ただし、ブラウザからランダム要求を送信すると機能しません)。どのように私はこのデータに手を差し伸べることができますか?

答えて

8

wiresharkを使用してください。

オープンソースのクロスプラットフォームで、さまざまなネットワークレイヤをハイライトすることができ、迷惑なSEOのようなウェブサイトからは実行されません。

Snortは、もう1つの優れたものですが、侵入検知とその自動応答にさらに対応しています。それでも、それは素晴らしいスニファを持っています。

+2

完全に感謝します。私が必要とするすべてがドライバーであるときに、私の陳列にハードウェアの店全体を持っているような感じが、ちょっと、仕事が終わった! –

+0

フレンドリーな情報のヒント、[localhost](http://wiki.wireshark.org/CaptureSetup/Loopback)のトラフィックをキャプチャするためにwiresharkを取得するにはいくつかの工夫が必要です.Windows localhostトラフィックをキャプチャするのは非常に難しいです。 – hooknc

0

ループバック(127.0.0.1)をスニッフィングしようとすると、それは少し複雑になり、そのために特別なドライバをインストールする必要があります。
"偽の"サーバーにリクエストを送信し、それを盗聴することをお勧めします。
「WireShark」または「burpSuite」(プロキシサーバを経由するurプログラムを設定できる場合)で盗聴できます。
gl。

3

通常、パケットスニッフィングはHTTPのトラブルシューティングには低すぎます。リバースプロキシを試してください。個人的に私はCharlesが好きです.Windows、Mac OS X、Linuxでも同様です。 FiddlerはWindowsで一般的です。

+0

提案してくれてありがとうございます(と私はここで私の頭の上に取得しようとしている可能性があります)私のJavaプログラムは、Webと対話しない、それは単にhttpを介してローカルサーバーに通信するので、Fiddlerは私の要求。 –

+0

チャールズはこのような状況に適しています。 Commons HttpClientがローカルプロキシサーバーを使用するように設定するには、 'client.getHostConfiguration()。setProxy(" localhost "、8888)'。 –

0

SOCKSプロキシを指定できます。通常JavaはSocksSocketImplを使用します。つまり、自動的にSOCKSプロキシをサポートします。

その他のスニファも同様に行います

関連する問題