▼MIDP2.0メモ▼
HTTP通信を行う


HTTP通信を行う。



プログラム
HttpEx.java
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

//HTTP通信を行う(本体)
public class HttpEx extends MIDlet 
    implements Runnable {
    static HttpCanvas c;//キャンバス

    //コンストラクタ
    public HttpEx() {
        c=new HttpCanvas();
        (new Thread(this)).start();
    }
    
    //処理
    public void run() {
        Display.getDisplay(this).setCurrent(c);
        c.exe();
    }

    //アプリの開始
    public void startApp() {
    }

    //アプリの一時停止
    public void pauseApp() {
    }

    //アプリの終了
    public void destroyApp(boolean flag) {
    }
}


HttpCanvas.java
import javax.microedition.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import java.io.*;

//HTTP通信を行う(キャンバス)
class HttpCanvas extends Canvas {
    private final static String URL=//URL
        "http://www.saturn.dti.ne.jp/~npaka/sorami/test.txt";
    private String info="?";//情報

    //処理
    void exe() {
        try {
            info=readText(URL);
        } catch (Exception e) {
            info=e.toString();
        }
        repaint();
    }

    //描画
    public void paint(Graphics g) {
        g.setColor(255,255,255);
        g.fillRect(0,0,getWidth(),getHeight());
        g.setColor(0,0,0);
        g.drawString(info,0,0,g.LEFT|g.TOP);
    }
    
    //テキストの読み込み
    private String readText(String url) throws Exception {
        return new String(readByte(url));
    }
    
    //バイトデータの読み込み
    private byte[] readByte(String url) throws Exception {
        byte[] w=new byte[10240];
        int rc,size;
        HttpConnection        c  =null;
        InputStream           in =null;
        ByteArrayOutputStream out=null;
        try {
            //ネットとの接続
            c  =(HttpConnection)Connector.open(url);
            in =c.openInputStream();
            out=new ByteArrayOutputStream();

            //レスポンスコードのチェック
            rc=c.getResponseCode();
            if (rc!=HttpConnection.HTTP_OK) {
                throw new Exception();
            }

            //データの読み込み
            while (true) {
                size=in.read(w);
                if (size<=0) break;
                out.write(w,0,size);
            }

            //ネットとの切断
            out.close();
            in.close();
            c.close();
            return out.toByteArray();
        } catch (Exception e) {
            //例外処理
            try {
                if (out!=null) out.close();
                if (in !=null) in.close();
                if (c  !=null) c.close();
            } catch (Exception e2) {
            }
            throw e;
        }
    }
}


S!アプリ(P型)の通信制限

S!アプリ(3GC)の通信制限



−戻る−