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, поэтому у меня нет кода для обмена, который, к сожалению, реализует последнее решение.