Web で多くの投稿を読みましたが、解決策が見つかりませんでした。
HttpConnection
サーバーからデータを取得/設定するために使用する BlackBerry アプリ (SDK 5) を開発しました。
ワイヤレスと G2/G3 接続で接続しようとしました。
どちらの場合も、アプリケーションはしばらくの間正常に動作しますが、突然インターネット接続が切断されます (サーバーからデータをロードしている最中に発生する場合があります)。その後、アプリケーションが機能せず、どの Web ページにもアクセスできません (BB ブラウザーで)。BB がインターネットを無効にしているようです。
BB Browser で試してみると、次のメッセージが表示されます。
インターネットに接続できません。しばらくしてからもう一度お試しください。問題が解決しない場合は、サービス プロバイダーにお問い合わせください
インターネットを元に戻す唯一の方法は、設定に移動して 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");
私は何を間違っていますか?
これを修正し、接続を安定して応答性を保つ方法はありますか?
ありがとう。