HTTP通信を実装する
iアプリからHTTP通信を行うためのクラスを作成しました。
ファイルをインポートして下記のように実行するだけで通信ができます。
(GET) byte[] b = Http.requestHttp("test.php?p1=param1"); if(b!=null) System.out.println(new String(b)); # GET通信:param1 と出力 (POST) byte[] b = Http.requestHttp("test.php","p1=param1&p2=param2"); if(b!=null) System.out.println(new String(b)); # POST通信:param1, param2 と出力
かなり手抜きですが、サーバ側はこんな感じ。
<?php if(isset($_GET['p1'])){ echo "GET通信:".$_GET['p1']; }else if(isset($_POST['p1'])){ echo "POST通信:".$_POST['p1'].", ".$_POST['p2']; } ?>
バイト配列で受け取るので画像などのバイナリデータでも大丈夫(なはず)です。
シミュレータで通信する場合は、事前に下記の設定を行う必要があります。
- アプリダウンロードURLの設定
- iAppliTool for DoJa を起動 (Eclipseからは設定できない)
- プロジェクトを読み込み
- 設定 > アプリケーション動作設定 > ネットワーク設定
- ADFのURLを設定(http://localhost など)
- ADFの設定
- UseNetwordを有効にする(こちらはシミュレータに限らず必要)
また、Dojaには下記のような制限があるので要注意です。
- アプリのダウンロード元としか通信できない(トラステッドアプリは別)
- 1回の通信量制限 (150kbくらい)
- 1度に張れるコネクションは1つのみ(非同期で複数通信を行う場合はリクエストキューを作って処理)
コードはここからどうぞ。