SSLContext sslContext = SSLContext.getInstance("TLS"); sslContext.init(keyManagers, trustManagers, new SecureRandom()); httpClient = httpClient.newBuilder() .sslSocketFactory(sslContext.getSocketFactory(), (X509TrustManager) trustManagers) .hostnameVerifier(hostnameVerifier) .build();
This adds a different progress interceptor to each ApiClient, so it seems very likely that OkHttp will generate a different HTTP client each time. And that means we won't re-use connections.
OkHttpClient.Builder builder = new OkHttpClient.Builder(); builder.addNetworkInterceptor(getProgressInterceptor());
* ## OkHttpClients Should Be Shared * * OkHttp performs best when you create a single `OkHttpClient` instance and reuse it for all of * your HTTP calls. This is because each client holds its own connection pool and thread pools. * Reusing connections and threads reduces latency and saves memory. Conversely, creating a client * for each request wastes resources on idle pools. * * Use `new OkHttpClient()` to create a shared instance with the default settings: