OkHttp:SSL一次调用生成的多个POST请求

时间:2015-06-27 09:17:08

标签: android ssl okhttp

我在我的Android项目中使用OkHttp,我每隔15分钟就会与服务器同步一些数据。我遇到的问题是,当同步开始时,我使用OkHttp向安全域发出异步发布请求,在服务器端我记录请求时间/数据以进行调试。

检查日志,我发现有时候我有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))。

1 个答案:

答案 0 :(得分:0)

您可以使用OkHttp interceptor来诊断正在进行的操作。