読者です 読者をやめる 読者になる 読者になる

プログラミングノート

一からものを作ることが好きなエンジニアの開発ブログです。

HTTP通信を実装する

iアプリ

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の設定
    1. iAppliTool for DoJa を起動 (Eclipseからは設定できない)
    2. プロジェクトを読み込み
    3. 設定 > アプリケーション動作設定 > ネットワーク設定
    4. ADFのURLを設定(http://localhost など)

  • ADFの設定
    1. UseNetwordを有効にする(こちらはシミュレータに限らず必要)


また、Dojaには下記のような制限があるので要注意です。

  • アプリのダウンロード元としか通信できない(トラステッドアプリは別)
  • 1回の通信量制限 (150kbくらい)
  • 1度に張れるコネクションは1つのみ(非同期で複数通信を行う場合はリクエストキューを作って処理)


コードはここからどうぞ。

追記

制限の記載を見つけたのでメモ。

PDC携帯電話 FOMA携帯電話
プロファイル リクエスト レスポンス リクエスト レスポンス
DoJa-1.x 5kb 10kb 80kb 100kb
DoJa-2.x 5kb 10kb 80kb 150kb
DoJa-3.x 10kb 20kb 80kb 150kb
DoJa-4.x/5.x - - 80kb 150kb

DoJa-5.x 詳細編より