Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 设置异步Http客户端上的超时_Android_Asynchronous_Timeout_Httprequest - Fatal编程技术网

Android 设置异步Http客户端上的超时

Android 设置异步Http客户端上的超时,android,asynchronous,timeout,httprequest,Android,Asynchronous,Timeout,Httprequest,im使用异步Http客户端,可在此处找到: 它工作得很好,除了大约每10个请求中就有1个最终会给我一个无限进度的对话框,我相信无论出于什么原因,都不会返回任何类型的响应,因为我已经编写了在成功和失败时关闭对话框的代码,所以我有点困惑这是怎么发生的 以下是设置请求的代码: public static void post(String token,String url, RequestParams params, AsyncHttpResponseHandler responseHandler)

im使用异步Http客户端,可在此处找到:

它工作得很好,除了大约每10个请求中就有1个最终会给我一个无限进度的对话框,我相信无论出于什么原因,都不会返回任何类型的响应,因为我已经编写了在成功和失败时关闭对话框的代码,所以我有点困惑这是怎么发生的

以下是设置请求的代码:

  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();
    }

该库似乎正在执行您希望它执行的操作,
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);
}

如果它不起作用,那么最好报告这个问题

在经历了很多挫折之后,我放弃了解决这个问题,但是最新的版本确实让你很容易做到这一点,如果你只是升级你的库。

你解决了这个问题吗?我遇到了同样的问题。有时它只是挂在那里。即使我设置了超时,也没有onFailure或onSuccess回调。