デバッグの目的で、送信される生のリクエストを確認します。 HttpPost
または HttpClient
のAPIから直接HTTPモニターなしでこれを取得する方法はありますか?
「ほぼ」重複する質問がいくつか見つかりましたが、この特定の質問ではありません
Apache HttpClientのいくつかの環境変数を設定できます(4.3.2でテストされた例)。
System.setProperty("org.Apache.commons.logging.Log","org.Apache.commons.logging.impl.SimpleLog");
System.setProperty("org.Apache.commons.logging.simplelog.showdatetime", "true");
System.setProperty("org.Apache.commons.logging.simplelog.log.org.Apache.http.wire", "DEBUG");
デバッグ用の変数もいくつかあります。
System.setProperty("org.Apache.commons.logging.simplelog.log.org.Apache.http.impl.conn", "DEBUG");
System.setProperty("org.Apache.commons.logging.simplelog.log.org.Apache.http.impl.client", "DEBUG");
System.setProperty("org.Apache.commons.logging.simplelog.log.org.Apache.http.client", "DEBUG");
System.setProperty("org.Apache.commons.logging.simplelog.log.org.Apache.http", "DEBUG");
これを試して:
HttpClient client = new HttpClient();
PostMethod method = new PostMethod(url);
method.setParameter(...., ....);
uRIを取得する
System.out.println("getUri: " + method.getURI());
pOSTでパラメーターを取得する
method.getRequestEntity().writeRequest(System.out);
ロギング構成でDEBUG
モードを有効にしてみてください。log4j
を使用している場合は、これをプロジェクトのlog4j.xml
ファイルに追加できます
<root>
<priority value="DEBUG" />
<appender-ref ref="FILE" />
</root>
完全なリクエストヘッダー、パラメータ、本文などがログファイルに記録されます。
org.Apache.http.client.fluent.Request#viaProxy
このメソッドは、リクエストがプロキシサーバーを通過できるようにするため、Fiddlerなどのローカルプロキシサーバーを起動できるため、このデバッグプロキシはhttpリクエストとレスポンスの詳細を表示できます。