Home > android > AndroidでWebマッシュアップ開発の基礎

AndroidでWebマッシュアップ開発の基礎

Androidを含めるネットデバイスの魅力の1つはWebとのマッシュアップにあります。
私はWebAPIを使ったAndroidアプリの開発を行って来たので、
その時に役立った事をここでメモしておく事にします。

デバッグ

Webとの通信は主にHTTP(S)を使います。
WebAPIを使った場合、コノ部分でバグがおきやすい。
なので、ここではHTTP(S)通信部分のデバッグ方法をご紹介します。

環境整備

デバッグと言っても通信をデバッガでアタッチできるわけではないので、
HTTP(S)をダンプします。地味ですw

FirefoxではLive HTTP Headersなどのプラグインを組み込めば、
HTTPヘッダを覗き見できるのである程度のデバッグも可能です。
しかし、Androidではそのようなダンプツールはありません。

プロキシサーバ

そのため、HTTP(S)通信にプロキシサーバを通す事でダンプする事にします。
HTTPをダンプできるプロキシサーバはいくつかありますが、私はWebScarabというアプリを使いました。

Windows,Mac,Linuxで動作します。
私はMac版をダウンロードして使っています。

WebScarabの設定

WebScarabには難しい設定は殆どありません。
アプリを起動すれば殆どスグ使えます。
一応、設定画面で設定項目をチェックします。

まずプロキシサーバの設定を確認しておきます。

Addressをホストマシン(WebScarabが動作するマシン)のIPに設定して下さい(デフォルトはlocalhostになっています)。
Portは何でも良いですが、デフォルトは8008となっています。
Use Pluginsにチェックが入っている事も確認して下さい。これがダンプ情報を表示してくれます。

次にWebScarabでダンプするリクエストの設定を確認しておきます。

ダンプしたいリクエスト(ここではGETとPOST)が選択されている状態で、かつ、Intercept requestsにチェックが入っていることを確認して下さい。
以上です。これで192.168.0.101:8008がプロキシサーバになりました。

Proxy経由でHTTP(S)アクセス

AndroidからProxy経由でHTTP(S)アクセスするようにプログラムを変更します。

変更前を下記とします。

HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://target-uri");
client.execute(post);//POSTリクエストを送信

このPOSTリクエストをWebScarabでダンプするようにプログラムを修正します。
修正後の例を示します。

HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://target-uri");
HttpHost proxy = new HttpHost("192.168.0.101", 8008);//Proxyサーバのアドレスとポート番号
client.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);//Proxyを設定
client.execute(post);//POSTリクエストを送信

たった2行追加しただけです。
これで、WebScarab経由でhttp://target-uriへアクセスできます。
WebScarabを経由する時にそのリクエスト内容をダンプでき、デバッグに役立つはずです。

例えば、以下のようなダンプ情報を取得する事ができます。

おまけ

WebScarabはJavaで動作しています。
デフォルトのヒープサイズが小さいので、ちょっと大きめのデータをPOSTするとOut Of Memoryになってしまいます。
その場合、コマンドラインからヒープサイズを指定して起動するとよいでしょう。

$ cd /Applications/WebScarab.app/Contents/Resources/Java
$ ls
webscarab-selfcontained-20060718-1904.jar
$ java -Xmx512m -jar webscarab-selfcontained-20060718-1904.jar

この例では最大ヒープサイズを512MBでWebScarabを起動しています。

全てのプラットフォームで共通のJARを使っているでしょうから、
Mac以外でも、jarファイルを見つけ出して、同じコマンドを打てばヒープを大きくしてWebScarabを起動できます。
ご参考までに。

このエントリをはてなブックマークに登録 Deliciousにブックマーク
関連のありそうなエントリ

Comments:0

Comment Form
Remember personal info

*
To prove that you're not a bot, enter this code
Anti-Spam Image

Trackbacks:0

Trackback URL for this entry
http://www.adamrocker.com/blog/242/debug-android-mashup-app.html/trackback/
Listed below are links to weblogs that reference
AndroidでWebマッシュアップ開発の基礎 from throw Life

Home > android > AndroidでWebマッシュアップ開発の基礎

Author
Search
Feeds
Meta

Return to page top