4

ここにある非同期HTTPクライアントを使用しています:http://loopj.com/android-async-http/

そして、それはうまく機能しますが、私が行うリクエストの約10分の1に加えて、無限の進行状況ダイアログが表示されることになります。これは、onSuccessでダイアログを閉じるコードを記述したため、何らかの理由でいかなる種類の応答も返されないことを意味すると信じていますそして onFailure なので、これがどのように起こるのか少し混乱しています。

リクエストを設定するコードは次のとおりです。

  public static void post(String token,String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
     Log.i(token,"token");
      client.addHeader("token", token);
      client.setTimeout(3000);
      client.post(url, params, responseHandler);


  }

そして、ここで onSuccess と onFailure をオーバーライドします。

@Override
            public void onFailure(Throwable arg0, String arg1) {
                // TODO Auto-generated method stub
                super.onFailure(arg0, arg1);
                pdialog.dismiss();
                Log.i("failed to login", arg1.toString());
                Toast.makeText(getActivity(), arg1.toString() , Toast.LENGTH_LONG).show();
            }

            @Override
            public void onSuccess(final JSONObject json) {
                pdialog.dismiss();
    }
4

2 に答える 2

2

ライブラリは、クラスsetTimeoutからのコード、あなたがやりたいことをしているようですAsyncHttpClient

public void setTimeout(int timeout){
    final HttpParams httpParams = this.httpClient.getParams();
    ConnManagerParams.setTimeout(httpParams, timeout);
    HttpConnectionParams.setSoTimeout(httpParams, timeout);
    HttpConnectionParams.setConnectionTimeout(httpParams, timeout);
}

機能しない場合は、ここで問題を報告してください

于 2013-07-18T05:50:44.430 に答える
0

多くの欲求不満の後、私はこれを理解することをあきらめましたが、最新バージョンでは、ライブラリをアップグレードするだけでこれを非常に簡単に達成できます。

于 2014-06-08T07:59:56.703 に答える