5

アプリケーションにこの非常に大きなバグがあり、実際には解決できないようです。次のコードを使用して休息の呼び出しを行うときはいつでも:

  HttpGet request = new HttpGet(url + getParams());

  HttpParams httpParameters = new BasicHttpParams();
  HttpConnectionParams.setConnectionTimeout(httpParameters, 5000);
  HttpConnectionParams.setSoTimeout(httpParameters, 10000);

  DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters);

  httpClient.execute(request);

DDMS で次のエラーが表示されます。

07-15 11:22:47.448: WARN/System.err(973): org.apache.http.conn.ConnectTimeoutException: Connect to (some ip-address) timed out

しかし、コードが完全に機能し、データを正常に受信できる場合もあります。また、コンピューターの通常の Web ブラウザーを介して残りのサーバー呼び出しをテストしたところ、常に 100 ミリ秒以内にデータが返されました。それで、私は何を間違っていますか?別のデバイスでもテストしましたが、同じ問題が発生します。誰かが私の問題を解決できればとてもうれしいです:)

4

4 に答える 4

5

問題は、DefaultHttpClient. 非同期で使用していますか?DefaultHttpClientはスレッドセーフではないため、非同期環境で使用すると問題が発生する可能性があります。アクティビティが複数の Http 接続を同時に開始したときにこの問題が発生し、使用するように変更しましたHttpURLConnection。このサイトを参照できます: http://www.vogella.de/articles/AndroidNetworking/article.html

于 2012-01-13T01:35:27.437 に答える
1

私は同じ問題を抱えています。

リクエストには直接IPを使用してみてください。AndroidDNSルックアップが非常に奇妙に動作することがあることに気づきました。私はこれを検索して見つけました:http://mailinglists.945824.n3.nabble.com/Android-and-reverse-DNS-lookup-issues-td3011461.html

それが関連しているかどうかにかかわらず、私はまだ回避策を見つけようとしています。たぶん、ここの誰かが見て、それを理解することができます。

于 2011-08-05T08:57:50.173 に答える
0

同様の問題があり、複数のデバイスを同時に使用して接続しようとした場合にのみ再現でき、解決策は次のとおりです。

インスタンスの再起動により、接続の問題が解決されました。(または、ネットワーク サービスを再起動する必要があるだけです)

(c) 私のサーバー/インスタンス管理者

また、同様の問題を経験し、他のいくつかの解決策が機能した人もいます。たとえば、次のとおりです。

  1. tcp_timestamp を無効にする
  2. tcp_tw_reuse と tcp_tw_recycle を無効にする
  3. Android マニフェストで vm 保存モードを有効にしました: android:vmSafeMode="true"

于 2015-10-29T08:17:06.793 に答える