デバッグの目的で、送信される生のリクエストを確認したいと思います。またはの API から直接 HTTP モニターなしでこれを取得する方法はありますHttpPost
かHttpClient
?
「ほぼ」重複する質問をいくつか見つけましたが、この特定の質問ではありません
デバッグの目的で、送信される生のリクエストを確認したいと思います。またはの API から直接 HTTP モニターなしでこれを取得する方法はありますHttpPost
かHttpClient
?
「ほぼ」重複する質問をいくつか見つけましたが、この特定の質問ではありません
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");
log4j2 や slf4j を使用しているすべての人にとって、言及されているすべてのソリューションは機能しませんでした。Maven pom に以下を追加しました。
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.30</version>
</dependency>
log4j2.xml ファイルを追加するか、既存のファイルを使用して以下を追加します。
<Logger name="org.apache.http">
<Level>DEBUG</Level>
</Logger>
もちろん、有効な log4j2.xml 構成のためには、いくつかのアペンダーを定義する必要があります。簡単な例はここにあります
これを試して:
HttpClient client = new HttpClient();
PostMethod method = new PostMethod(url);
method.setParameter(...., ....);
URIを取得する
System.out.println("getUri: " + method.getURI());
POSTでパラメータを取得する
method.getRequestEntity().writeRequest(System.out);