Android 设置异步Http客户端上的超时
im使用异步Http客户端,可在此处找到: 它工作得很好,除了大约每10个请求中就有1个最终会给我一个无限进度的对话框,我相信无论出于什么原因,都不会返回任何类型的响应,因为我已经编写了在成功和失败时关闭对话框的代码,所以我有点困惑这是怎么发生的 以下是设置请求的代码: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)
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回调。