5

デバッグの問題については、一連のオプションが提示されたときに、Unirest-Java によって実行される要求を取得したいと考えています。どうすればこれを取得できますか:

POST / HTTP/1.1
Host: www.some.host.tld
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
field1=FIELD1&field2=FIELD2

これから:

HttpRequest request = Unirest.post(SOMEHOST_URL)
            .field("field1" , FIELD1)
            .field("field2", FIELD2)
            .getHttpRequest();

つまり、から完全な HTTP 要求を取得するにはどうすればよいHttpRequestですか? SSLサポートを機能させることができたのはCharlesだけで、何らかの理由でJavaトラフィックをピックアップしないため、使用するプロキシについてはよくわかりません。他のツールは、主に通信する必要があるサーバーに欠陥があり、自己署名証明書と無効なホスト名を使用しているため、SSL で停止します。したがって、喜んでプロキシを試してみますが、これらの条件下で動作する必要があります。Unirest/HTTPClient自体からこの情報を抽出することをお勧めします。既にHttpClientwith をビルドしようとしまし.setInterceptorFirst(たが、インターセプターからリクエスト本文を取得できず、ヘッダーの一部しか取得できませんでした。

4

3 に答える 3

5

Unirest を使用したことはありませんが、Apache HTTP クライアント 4 を使用しているため、org.apache.http でデバッグ レベルのロガーを設定すると、ヘッダーとコンテンツを含む転送されたすべてのデータが得られるはずです。

で使用するログ システムに応じて、その方法を参照してください。

編集: https://hc.apache.org/httpcomponents-client-4.5.x/logging.html

于 2014-09-25T06:27:59.440 に答える
1

TCPMon を使用できます: https://code.google.com/p/tcpmon/

ウェブサイトから:

クライアントは、tcpmon が実行されているホストのローカル ポートに接続します。サーバーのアドレスは、サーバー名とサーバー ポートで指定する必要があります。接続ごとに取得された情報は、接続のローカル ポートで識別されるタブ付きパネルに表示されます。

このツールは以前から使用していましたが、軽くて使いやすいです。チュートリアルが必要な場合は、以下を確認してください。

http://www.asjava.com/web-services/tcpmon-tutorial-web-service-debugging-tool/

アップデート。

TCPMon は https トラフィックを監視できません。または、SSLDump を使用できます。

ssldump のメインサイト: http://www.rtfm.com/ssldump/Ssldump.html 使用例: http://blog.facilelogin.com/2010/11/ssl-debugging-part-ii-intercepting. html

于 2014-09-22T14:16:26.143 に答える