OkHttpClient 3 с несколькими доменами

Я знаю, что лучше всего использовать один экземпляр OkHttpClient для всего приложения. Но я наткнулся на TrustKit, и мне нужно было реализовать следующий код:

OkHttpClient.Builder builder = new OkHttpClient().newBuilder();
URL url = new URL("https://www.url.com");
String serverHostname = url.getHost();
builder.sslSocketFactory(TrustKit.getInstance().getSSLSocketFactory(serverHostname),
TrustKit.getInstance().getTrustManager(serverHostname)).build();

Тогда я понял, что, возможно, правильный путь - иметь один экземпляр на домен. В настоящее время мне нужно реализовать закрепление сертификатов, и у меня внутри приложения несколько доменов, где я получаю информацию, необходимую моему приложению.

Таким образом, вопрос заключается в следующем: какова лучшая практика, если у вас есть несколько доменов, когда вы пытаетесь создать экземпляр OkHttpClient? Один экземпляр на домен?

1 ответ

Решение

Как сказал CommonsWare,

Ваше конкретное ограничение "один экземпляр на домен" исходит от использования TrustKit-Android.

Если вам не нужно выполнять конкретные задачи для каждого домена, то лучше иметь один экземпляр OkHttpClient. В противном случае примените это решение, если для каждого клиента создается общий ConnectionPool.

Я закончил тем, что использовал закрепление сертификата с помощью okhttp3, поэтому у меня нет кода для обмена, который, к сожалению, реализует последнее решение.

Другие вопросы по тегам