fuel2.3 socketFactory 配置信任https
时间: 2023-07-18 21:06:58 浏览: 38
在使用 Fuel 2.3 的时候,可以通过配置 `socketFactory` 来信任 HTTPS 请求。具体步骤如下:
1. 创建一个 `SSLContext` 对象。
```kotlin
val sslContext = SSLContext.getInstance("TLS")
sslContext.init(null, trustAllCerts, SecureRandom())
```
其中,`trustAllCerts` 是一个 `TrustManager[]` 数组,用于信任所有证书。可以使用以下代码创建:
```kotlin
val trustAllCerts: Array<TrustManager> = arrayOf(object : X509TrustManager {
override fun checkClientTrusted(chain: Array<out X509Certificate>?, authType: String?) {
}
override fun checkServerTrusted(chain: Array<out X509Certificate>?, authType: String?) {
}
override fun getAcceptedIssuers(): Array<X509Certificate> {
return arrayOf()
}
})
```
2. 创建一个 `SSLSocketFactory` 对象。
```kotlin
val sslSocketFactory = sslContext.socketFactory
```
3. 配置 `socketFactory`。
```kotlin
val client = FuelManager.instance.client.clone()
client.apply {
setHostnameVerifier { _, _ -> true }
sslSocketFactory = sslSocketFactory
}
```
其中,`setHostnameVerifier` 方法用于信任所有主机名。如果需要对特定的主机名进行验证,可以编写自定义的 `HostnameVerifier` 实现类来进行验证。
配置完成后,就可以使用 Fuel 发送 HTTPS 请求了。