2012-03-01 11 views
0

AndroidでリクエストPOST/GETに問題があります。 私はエラーを処理しようとしています:によって引き起こさAndroid - タイムアウトをハンドリングする方法

:私のアプリケーション上でのクラッシュを防ぐためにjava.net.SocketTimeoutException: Read timed out

、私は40秒のタイムアウトを追加しました。それは動作しますが、時には40秒でエラーを回避するには十分ではありません。

私は「しようとするとキャッチ」を追加しようとしましたが、エラーがここに内部で発生していないと思わ:、

try { 
      request.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
      localContext.setAttribute(ClientContext.COOKIE_STORE, 
        Backend2.cookieStore); 
      response = HttpManager.execute(request, localContext); 
      if (response.getEntity() != null) { 
       final String r = EntityUtils.toString(response.getEntity()); 
       return r; 
      } else { 
       return null; 
      } 
     } catch (SocketTimeoutException e) { 
      e.printStackTrace(); 
      return null; 
     } catch (UnknownHostException e) { 
      e.printStackTrace(); 
      return null; 
     } catch (IOException e) { 
      e.printStackTrace(); 
      return null; 
     } 

私は解決策を探していますが、私はstackoverflowの上やGoogleに読んだとき私は「あなたのタイムアウトを増やし、試しを追加する」のような投稿のみを表示します。

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

答えて

0

catchステートメントだけでは分かりませんが、SocketTimeoutExceptionとは異なるエラーが発生している可能性があります。代わりにExceptionをキャッチして、それを確認してください。

+0

私は完全なtryとcatchで投稿を更新しました。ちょうど例外を追加すべきですか? – christian246

+0

前にも述べたように、SocketTimeoutExceptionが発生することがありますが、時にはそうしないこともあるので、おそらく別のエラーが発生していると思います。例外の種類ごとに異なる処置がない限り、代わりに例外をキャッチしてください。 –

関連する問題