Ⅰ. はじめに
タイトルの通り「KotlinでFuelにProxyを設定する方法」です。
Ⅱ. サンプルプログラム
1. 通常の方法
import com.github.kittinunf.fuel.Fuel import com.github.kittinunf.fuel.core.FuelManager import com.google.gson.JsonParser import java.net.InetSocketAddress import java.net.Proxy fun main(args: Array<String>) { FuelManager.instance.proxy = Proxy(Proxy.Type.HTTP, InetSocketAddress("127.0.0.1", 8008)) val (request, response, result) = Fuel.get("http://httpbin.org/get").responseString() println(result.get()) }
2. オレオレ証明書のチェックを省く方法
import com.github.kittinunf.fuel.Fuel import com.github.kittinunf.fuel.core.FuelManager import com.google.gson.JsonParser import java.net.InetSocketAddress import java.net.Proxy import java.security.cert.X509Certificate import javax.net.ssl.SSLContext import javax.net.ssl.TrustManager import javax.net.ssl.X509TrustManager class MyX509TrustManager : X509TrustManager { override fun checkClientTrusted(p0: Array<out X509Certificate>?, p1: String?) { } override fun checkServerTrusted(p0: Array<out X509Certificate>?, p1: String?) { } override fun getAcceptedIssuers(): Array<X509Certificate> { return arrayOf() } } fun main(args: Array<String>) { val sslContext = SSLContext.getInstance("SSL") sslContext.init(null, arrayOf<TrustManager>(MyX509TrustManager()), java.security.SecureRandom()) FuelManager.instance.socketFactory = sslContext.socketFactory FuelManager.instance.proxy = Proxy(Proxy.Type.HTTP, InetSocketAddress("127.0.0.1", 8008)) val (request, response, result) = Fuel.get("http://httpbin.org/get").responseString() println(result.get()) }