Guest User

Untitled

a guest
Feb 18th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. class Retrofit {
  2.  
  3. companion object {
  4.  
  5. fun getSSLContext(): SSLContext? {
  6. MainActivity.appContext?.let {
  7. val badssl = it.resources!!.openRawResource(R.raw.badssl)
  8. val baddsslPassword = "badssl.com".toCharArray()
  9.  
  10. val keyStore = KeyStore.getInstance("PKCS12")
  11. keyStore.load(badssl, baddsslPassword)
  12.  
  13. val keyManagerFactory = KeyManagerFactory.getInstance("X509")
  14. keyManagerFactory.init(keyStore, baddsslPassword)
  15.  
  16. val keyManagers = keyManagerFactory.keyManagers
  17.  
  18. val sslContext = SSLContext.getInstance("TLS")
  19. sslContext.init(keyManagers, null, null)
  20.  
  21. return sslContext
  22. }
  23.  
  24. return null
  25. }
  26.  
  27. fun get(): Api {
  28. val httpLoggingInterceptor = HttpLoggingInterceptor()
  29. httpLoggingInterceptor.level = HttpLoggingInterceptor.Level.BODY
  30.  
  31. val okHttpClientBuilder = OkHttpClient.Builder()
  32. .connectTimeout(1, TimeUnit.MINUTES)
  33. .readTimeout(1, TimeUnit.MINUTES)
  34. .writeTimeout(1, TimeUnit.MINUTES)
  35. .addInterceptor(httpLoggingInterceptor)
  36.  
  37. getSSLContext()?.let {
  38. okHttpClientBuilder.sslSocketFactory(it.socketFactory)
  39. }
  40.  
  41. val okHttpClient = okHttpClientBuilder.build()
  42.  
  43. val retrofit = Retrofit.Builder()
  44. .baseUrl("https://client.badssl.com/")
  45. .addConverterFactory(GsonConverterFactory.create())
  46. .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
  47. .client(okHttpClient)
  48. .build()
  49.  
  50. return retrofit.create(Api::class.java)
  51. }
  52. }
  53. }
  54.  
  55. interface Api {
  56.  
  57. @GET("/")
  58. fun get(): Single<ResponseBody>
  59. }
Add Comment
Please, Sign In to add comment