我正在使用这个库从我的网络服务中请求。它有时在 onSuccess 和 onFailure 中根本没有响应(这是我覆盖的仅有的两种方法)。我在1.4.4和1.4.5下测试过(android-async-http-1.4.5-20131110.125018-1,这个比较好,但是有时候还是会遇到这个问题)。我确定这不是网络问题,因为我的 ios 应用程序从未在同一个 Web 服务中遇到过这个问题。并且在出现此问题后立即刷新时可以得到响应。
这是我的代码:
在 requester.java 中
public class Requester
{
public static void get(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
AsyncHttpClient client = newClient();
client.get(getAbsoluteUrl(url), params, responseHandler);
}
public static void post(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
AsyncHttpClient client = newClient();
client.post(getAbsoluteUrl(url), params, responseHandler);
}
private static String getAbsoluteUrl(String relativeUrl) {
return Settings.BASE_URL + relativeUrl;
}
private static AsyncHttpClient newClient()
{
AsyncHttpClient client = new AsyncHttpClient();
client.setMaxRetriesAndTimeout(Settings.HTTP_TIMEOUT,Settings.HTTP_RETRIES);
return client;
}
}
在我发出 http 请求的活动中:
Requester.get(urlRequest, null, new JsonHttpResponseHandler()
{
@Override
public void onSuccess(int statusCode, org.apache.http.Header[] headers, org.json.JSONArray objects)
{
Logger.logDebug(TAG, "request success for " + " " + objects.length() + " objects");
}
@Override
public void onFailure(int statusCode, org.apache.http.Header[] headers, java.lang.Throwable throwable, org.json.JSONArray errorResponse)
{
Logger.logError(TAG,"Failed to request");
}
});
我在几个项目中使用了类似的来源。但所有人都有同样的问题。我不知道这是我的代码或 android-async-http 库的问题。有人可以帮忙吗?谢谢。
顺便说一句,我通常使用与上述源代码相同的方法,但使用不同的 url 同时发出 3 个请求。