0

我无法收到我的错误信息。当连接正常时,我可以看到消息“连接正常”。但是当我想连接到“坏”的 ip 服务器时,我看不到“连接错误”的消息。为什么是这样?我等了 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 回答