1
我在我的Android項目上使用OkHttp,在該項目中,我每15分鐘與服務器同步一些數據。我遇到的問題是,當同步開始時,我使用OkHttp向安全域發出異步請求,並在服務器端記錄請求時間/數據以進行調試。OkHttp:SSL通過一次調用生成多個POST請求
檢出日誌,我發現不是有一個同步請求,有時候我有2,3個相同的請求同時被同一個數據觸發。
這裏是負責發佈請求的類的相關部分:
public class PostClientData {
private static OkHttpClient client = new OkHttpClient();
public PostClientData(String baseUrl) {
BASE_URL = baseUrl;
client.setRetryOnConnectionFailure(false);
client.setConnectTimeout(120, TimeUnit.SECONDS);
client.setProxy(Proxy.NO_PROXY);
client.setFollowRedirects(true);
client.setFollowSslRedirects(true);
}
public static void post(String url, HashMap<String, String> postParams, Callback responseHandler) {
String postData = getPostData(postParams);
String absUrl = getAbsoluteUrl(url);
RequestBody body = RequestBody.create(PLAIN, postData);
Request request = new Request.Builder()
.url(absUrl)
.post(body)
.build();
client.newCall(request).enqueue(responseHandler);
}
}
我使用的是服務這裏面調用。該服務每15分鐘使用一次警報啓動。我檢查了一下,每15分鐘只發一次警報。我搜索了一下,發現可能是因爲失敗的請求,客戶端重試相同的請求(但我添加了setRetryOnConnectionFailure (false)
)。
你在解決這個問題上有什麼進展嗎?我看到了基本相同的概念,完全相同的情況。 – JAManfredi