プログラミングノート

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

HTTP通信を実装する2

以前作ったクラスをキュー通信が出来るように改良しました。リクエストを登録しておけば順次処理されます。優先度の高い処理については割り込み通信が可能になってますので、こちらで処理します。下記のような感じで。

インタフェース実装
class Cvs extends BaseCanvas implements HttpReceivedEvent {
スレッド起動
HttpManager.getInstance().initQueThread();
リクエスト追加
HttpManager http = HttpManager.getInstance();
//http.push(イベント受信先, URL, POSTパラメタ, オプション);
http.push(this, "URL", null, new String[]{"リクエストA"});
http.push(this, "URL", null, new String[]{"リクエストB"});
http.push(this, "URL", null, new String[]{"リクエストC"});
割り込みさせる
HttpManager.getInstance().requestHttp("URL");
キュー通信成功
public void httpReceived(byte[] data, String[] option) {
  // リクエストA 100byte OK
  System.out.println(option[0] + " " + data.length + "byte OK");
}
キュー通信失敗
public void httpErrReceived(String message, String[] option) {
  // リクエストB コネクションエラー
  System.out.println(option[0] + " " + message);
}

ソースはこちら。ご自由にどうぞ。


スレッド化してるのに、Connectionの瞬間にちょっと止まるのが気になりますが(組み方が悪い?)、ゼロから作るよりは大分楽できるんじゃないかなと思います。