0

我在网上阅读了很多帖子,但我没有找到解决方案。

我开发了一个HttpConnection用于从服务器获取/设置数据的 BlackBerry App ( SDK 5 )。

我尝试通过无线和 G2/G3 连接进行连接。

在这两种情况下,应用程序都可以正常工作一段时间,然后突然互联网连接中断(有时在从服务器加载数据的中间)。在那之后,应用程序不起作用,我也无法访问任何网页(在 BB 浏览器中)。看起来BB禁用了互联网。

当我在 BB 浏览器中尝试时,我收到以下消息:

无法连接到互联网,请稍后再试。如果问题仍然存在,请联系您的服务提供商

恢复互联网的唯一方法是转到设置并禁用 WiFi,然后再次重新启用它。之后它起作用了,但又过了一段时间。

它永远不会在同一点中断。

这是我用来从服务器获取数据的代码:

String urlPath = "http://www.mysite.com/api/?debug=true";
//debug is my variable on the site, it's not necessary

if(DeviceInfo.isSimulator()){
    urlPath += ";deviceside=true";
} else {
    if (WLANInfo.getWLANState() == WLANInfo.WLAN_STATE_CONNECTED) {
        urlPath += ";interface=wifi";
    }else{
        urlPath += ";deviceside=true";
    }
}

HttpConnection httpConn = (HttpConnection) Connector.open( urlPath );

httpConn.setRequestMethod(HttpConnection.POST);
httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
httpConn.setRequestProperty("User-Agent", "Profile/MIDP-2.0 Configuration/CLDC-1.0");
httpConn.setRequestProperty("Content-Language", "en-US");
httpConn.setRequestProperty("Connection", "close");

OutputStream os = httpConn.openOutputStream();

os.write(temp1.getBytes());
os.flush();
os.close();
StringBuffer sb = new StringBuffer();
DataInputStream is = httpConn.openDataInputStream();
int chr;
while ((chr = is.read()) != -1) {
    sb.append((char) chr);
}

String response = new String(sb.toString().getBytes(), "UTF-8");

我究竟做错了什么?

有没有办法解决这个问题并保持连接稳定和响应?

谢谢。

4

0 回答 0