Внедрение доверия ко всем сертификатам с охттп - PullRequest
0 голосов
/ 19 июня 2019

Я звоню на сервер используя okhttp

Для некоторых отладочных вызовов мне нужно доверять всем сертификатам, но, хотя я прочитал ответы о том, как это сделать, мне не удалось его реализовать.

Мой код для совершения этого звонка, не говоря уже о том, чтобы доверять всем сертификатам:

public class Handler_JSON_get_accept_auth {

    public Handler_JSON_get_accept_auth() {
    }

    public String makeServiceCall(String url, String auth) {
        final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
        OkHttpClient client = new OkHttpClient();
        client.setConnectTimeout(45, TimeUnit.SECONDS);
        client.setReadTimeout(45, TimeUnit.SECONDS);
        client.setProtocols(Arrays.asList(Protocol.HTTP_1_1));
        Request request = new Request.Builder()
                .url(url)
                .header("Accept","application/json")
                .header("Authorization",auth)
                .get()
                .build();
        try {
            Response response = client.newCall(request).execute();
            return response.body().string();
        } catch (Exception e) {
            e.printStackTrace();
            // Time out
            return null;
        }
    }
}

Я видел этот ответ на этом же форуме, и он считается правильным:

Доверие всем сертификатам с помощью okHttp

к сожалению, я не знаю, как реализовать это решение в моем коде, и это занимает у меня много времени.

Буду признателен за любую помощь в его реализации.

Спасибо и всего наилучшего.

1 Ответ

1 голос
/ 19 июня 2019

Попробуйте использовать OkHttpClient.Builder вместо прямого OkHttpClient .Затем вы можете настроить sslSocketFactory и hostnameVerifier описанный https://stackoverflow.com/a/25992879/3816129

...