我在网上看过很多帖子,但我找不到解决方案。
我开发了一个BlackBerry App(SDK 5),它使用HttpConnection
从服务器获取/设置数据。
我尝试通过无线和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");
我做错了什么?
有没有办法解决这个问题并保持连接稳定和响应?
感谢。