0

エラーメッセージが表示されません。接続がOKの場合、「接続OK」というメッセージが表示されます。しかし、「悪い」IP サーバーに接続したい場合、「Bad Connection」というメッセージが表示されません。どうしてこれなの?2分待ちました(接続のタイムアウトは2分です)が、何も起こりません。

やりたいことは、接続をキャンセルして、接続が悪いか、サーバーから情報を取得できないというメッセージを表示することです。

public void run() {

        try {

            conn = (HttpConnection) Connector.open(URL);

            int status = conn.getResponseCode();

            if (status != HttpConnection.HTTP_OK) {
                UiApplication.getUiApplication().invokeLater(new Runnable() {
                    public void run() {
                        mainScreen.add(new RichTextField("Bad Connection"));
                    }
                });
                conn.close();
                return;
            }

            InputStream contentIn = conn.openInputStream();
            byte[] data = new byte[400];
            int length = 0;

            StringBuffer raw = new StringBuffer();
            while (-1 != (length = contentIn.read(data))) {
                raw.append(new String(data, 0, length));
                str = raw.toString();
                conn.close();
                UiApplication.getUiApplication().invokeLater(new Runnable() {
                    public void run() {
                        mainScreen.add(new RichTextField("Connection OK"));
                    }
                });
            }
        } catch (Exception e) {

        }
    }
4

1 に答える 1

0

悪いサーバーが実行されていない場合、接続はタイムアウトになります。これにより、Connector.open() の呼び出しから例外がスローされ、catch ハンドラーが空になるため、何も起こりません。例外ハンドラーにいくつかの UI コードを追加してみてください。

于 2012-05-23T17:07:29.673 に答える