Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Retrofit {
- companion object {
- fun getSSLContext(): SSLContext? {
- MainActivity.appContext?.let {
- val badssl = it.resources!!.openRawResource(R.raw.badssl)
- val baddsslPassword = "badssl.com".toCharArray()
- val keyStore = KeyStore.getInstance("PKCS12")
- keyStore.load(badssl, baddsslPassword)
- val keyManagerFactory = KeyManagerFactory.getInstance("X509")
- keyManagerFactory.init(keyStore, baddsslPassword)
- val keyManagers = keyManagerFactory.keyManagers
- val sslContext = SSLContext.getInstance("TLS")
- sslContext.init(keyManagers, null, null)
- return sslContext
- }
- return null
- }
- fun get(): Api {
- val httpLoggingInterceptor = HttpLoggingInterceptor()
- httpLoggingInterceptor.level = HttpLoggingInterceptor.Level.BODY
- val okHttpClientBuilder = OkHttpClient.Builder()
- .connectTimeout(1, TimeUnit.MINUTES)
- .readTimeout(1, TimeUnit.MINUTES)
- .writeTimeout(1, TimeUnit.MINUTES)
- .addInterceptor(httpLoggingInterceptor)
- getSSLContext()?.let {
- okHttpClientBuilder.sslSocketFactory(it.socketFactory)
- }
- val okHttpClient = okHttpClientBuilder.build()
- val retrofit = Retrofit.Builder()
- .baseUrl("https://client.badssl.com/")
- .addConverterFactory(GsonConverterFactory.create())
- .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
- .client(okHttpClient)
- .build()
- return retrofit.create(Api::class.java)
- }
- }
- }
- interface Api {
- @GET("/")
- fun get(): Single<ResponseBody>
- }
Add Comment
Please, Sign In to add comment