Я использую LOOPJ для работы в сети в своем приложении.Недавно, проверив некоторые журналы на стороне сервера, мы столкнулись с бесконечными вызовами API для одной и той же конечной точки и одного и того же пользователя.Хотя я не могу найти проблему, но подозреваю, что внутри библиотеки LOOPJ происходит какой-то бесконечный цикл, который делает возможным такой сценарий.
Мне нужна помощь, если кто-то сталкивался с этой проблемой раньше, и чторешение для этого.
Я попробовал scnerios для расследования сбоя вызова API, но он не вызывает никаких петель.
открытый класс SARestClient {
private static int DEFAULT_TIMEOUT = 50 * 1000;
private static AsyncHttpClient client = new AsyncHttpClient();
public static void setTimemout() {
client.setConnectTimeout(DEFAULT_TIMEOUT);
client.setResponseTimeout(DEFAULT_TIMEOUT);
client.setMaxConnections(6);
client.setMaxRetriesAndTimeout(5, DEFAULT_TIMEOUT);
client.setLoggingEnabled(true);
}
public static void delete(String url, RequestParams requestParams, AsyncHttpResponseHandler responseHandler) {
setTimemout();
client.delete(getAbsoluteUrl(url), requestParams, responseHandler);
}
public static void delete(String url, AsyncHttpResponseHandler responseHandler) {
setTimemout();
client.delete(getAbsoluteUrl(url), responseHandler);
}
public static void post(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
setTimemout();
client.post(getAbsoluteUrl(url), params, responseHandler);
}
public static void put(Context context, String url, HttpEntity params, AsyncHttpResponseHandler responseHandler) {
client.put(context, getAbsoluteUrl(url), null, params, "application/json", responseHandler);
}
public static void put(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
setTimemout();
client.put(getAbsoluteUrl(url), params, responseHandler);
}
public static void addHeader(String key, String value) {
client.addHeader(key, value);
}
public static void removeHeader() {
client.removeAllHeaders();
}
public static void get(String url, AsyncHttpResponseHandler responseHandler) {
setTimemout();
String actualUrl = getAbsoluteUrl(url);
//////////////////////Log.e("Url", "" + actualUrl);
client.get(actualUrl, responseHandler);
}
public static void put(String url, AsyncHttpResponseHandler responseHandler) {
setTimemout();
client.put(getAbsoluteUrl(url), responseHandler);
}
public static void post(Context mContext, String url, StringEntity entity, AsyncHttpResponseHandler responseHandler) {
setTimemout();
client.post(mContext, getAbsoluteUrl(url), entity, "application/json", responseHandler);
}
/**
* Only for generating path on map
*
* @param url url of google api to show path
* @param responseHandler response handler
*/
public static void post(String url, AsyncHttpResponseHandler responseHandler) {
setTimemout();
client.post(getAbsoluteUrl(url), responseHandler);
}
private static String getAbsoluteUrl(String relativeUrl) {
String url = ConfigFile.getInstance().getServerUrl();
Log.e("finalurl", url + relativeUrl);
return url + relativeUrl;
}
Это мой клиент для отдыхакоторый я использую с некоторыми атрибутами, чтобы сделать вызовы API.