forus TECH

IT系技術メモ&本まとめ、ライフハック etc

アプリ内のHttp通信をdumpする方法

f:id:yusukekuni:20130314112101j:plain
1. Javaファイルの編集

dumpを開始したいクラスのonCreateに以下を追記します。

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);
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.httpclient.wire", "debug");
System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.http", "debug");
System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.http.headers", "debug");

アプリ起動時に自動的にdump開始したい場合は、以下ご参考に。
アプリケーション開始時・終了時の処理を定義する


2. コマンド操作

アプリ実行前にコマンドで以下を実行します。

adb shell setprop log.tag.org.apache.http VERBOSE 
adb shell setprop log.tag.org.apache.http.wire VERBOSE 
adb shell setprop log.tag.org.apache.http.headers VERBOSE

これでアプリを実行すればLogCatに通信内容がdumpされます。
すごい行数になるので"org.apache.http.wire"等でフィルターかけた方が良いです。