0

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");

私は何を間違っていますか?

これを修正し、接続を安定して応答性を保つ方法はありますか?

ありがとう。

4

0 に答える 0