2016-09-03 10 views
0

Loopjを使用して要求と応答を取得しています。しかし、データのないインターネット接続の場合、コールバックメソッドが正しく呼び出されないようです。 私はそのコードの下に実行するリストビューをクリックすると:AsyncHttpClientのコールバックメソッド(データがないインターネット接続の場合)Loopj

AsyncHttpClient client = new AsyncHttpClient(); 
      client.get("http://www.google.com", new AsyncHttpResponseHandler() { 

       @Override 
       public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { 
        System.out.println("onSuccess"); 
       } 

       @Override 
       public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { 
        System.out.println("onFailure"); 
       } 

      }); 

問題は、インターネットが接続されているが、その後ONFAILUREは()にもタイムアウト設定の後に呼び出しされていないデータがない場合。

私は、クライアントで以下のタイムアウト設定を試してみました:

client.setTimeout(5000);

又は

client.setConnectTimeout(5000)。

又は

client.setResponseTimeout(5000)。

又は

client.setMaxRetriesAndTimeout(5,1000)。

これらの強制呼び出しはonFailure()を呼び出すことができません。私の質問は、または他のコールバックがタイムアウト後に起動したLoopjで利用可能なデータなしのインターネット接続の場合、onFailure()を呼び出す方法はありますか?

答えて

0

AsyncHttpClientのために他のコールバックがありますが、最も重要なのは、あなたもその成功または失敗ならば結婚リクエストの終わりを与えるonFinish()コールバックを使用することができますあなたのケースでは

AsyncHttpClient client = new AsyncHttpClient(); 
    client.get("http://www.google.com", new AsyncHttpResponseHandler() { 

     @Override 
     public void onStart() { 
      super.onStart(); 
     } 

     @Override 
     public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { 
      System.out.println("onSuccess"); 
     } 

     @Override 
     public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { 
      System.out.println("onFailure"); 
     } 

     @Override 
     public void onFinish() { 
      super.onFinish(); 
      System.out.println("onFinish"); 
     } 
    }); 

..です

希望します。

+0

私は試しましたが、データなしのインターネット接続の場合はonFInish()が呼び出されません。それはインターネットのデータが利用可能になるまで要求を続けます。 – 0xalihn

+0

依頼していますか?あなたに手を差し伸べなかった。もっと説明してもらえますか?スクリーンショットや何かをポストする? @ 0xAliHn – Sanoop

+0

私は、onSuccess()またはOnFailure()の後に呼び出されるonFinish()を意味します。私の場合、データのないインターネット接続は、onSuccess()とonFailure()の両方が起動しません。したがって、onFinish()も呼び出されません。 – 0xalihn

関連する問題