Kotlin Модернизация игнорирует сертификат https - PullRequest
0 голосов
/ 06 мая 2020

Kotlin Модернизация игнорирует сертификат https.

Я пробовал это Android игнорировать самоподписанный сертификат и преобразовал в Kotlin. Это не работает.

Как я могу игнорировать сертификат https (SSL).

Мой OkHttp -


import com.jakewharton.retrofit2.adapter.kotlin.coroutines.CoroutineCallAdapterFactory
import okhttp3.Interceptor
import okhttp3.OkHttpClient
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import java.util.concurrent.TimeUnit

object OwnRetrofitClient {

    private val authInterceptor = Interceptor { chain ->
        val newUrl = chain.request().url
            .newBuilder()
            .build()

        val newRequest = chain.request()
            .newBuilder()
            .addHeader("Authorization", "bearer " + AppPreferences.token)
            .url(newUrl)
            .build()

        chain.proceed(newRequest)
    }

    private val client =
        OkHttpClient().newBuilder()
            .addInterceptor(authInterceptor)
            .connectTimeout(120, TimeUnit.SECONDS)
            .readTimeout(120, TimeUnit.SECONDS)
            .writeTimeout(90, TimeUnit.SECONDS)
            .build()

    private fun retrofit(baseUrl: String = "https:some.com/api") =
        Retrofit.Builder()
            .client(client)
            .baseUrl(baseUrl)
            .addConverterFactory(GsonConverterFactory.create())
            .addCallAdapterFactory(CoroutineCallAdapterFactory())
            .build()

    fun apiService(): ApiService {
        return retrofit().create(ApiService::class.java)
    }
}```


1 Ответ

0 голосов
/ 09 мая 2020

В примере, на который вы ссылаетесь, используется java встроенный HttpsUrlConnection. В okhttp вам нужно добавить X509TrustManager, HostnameVerifier и SSLSocketFactory в OkHttpClient.Builder (см. https://square.github.io/okhttp/4.x/okhttp/okhttp3/-ok-http-client/-builder/ssl-socket-factory/)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...