2013年5月9日木曜日

HttpClientの通信をdumpする

web apiとやり取りをするandroidアプリの開発でデバッグ時にアプリからどんなリクエストが行われているのか、またどんなレスポンスが返ってきているか確認したい場合があります。
その方法の忘備です。

①ソースコードに以下のコードを追加
java.util.logging.Logger.getLogger("org.apache.http.wire").setLevel(java.util.logging.Level.FINEST); 
java.util.logging.Logger.getLogger("org.apache.http.headers").setLevel(java.util.logging.Level.FINEST);

②adb shellで以下の値を設定
adb shell setprop log.tag.org.apache.http.wire VERBOSE
adb shell setprop log.tag.org.apache.http.headers VERBOSE

ただし、リリース時にはHttpの通信ログ出力によるパフォーマンスの低下やセキュリティ上の観点から、①で記述したコードを削除もしくは、通らないようにする必要があるので注意が必要です。