@@ -27,6 +27,7 @@ import com.github.ajalt.clikt.parameters.options.flag
2727import com.github.ajalt.clikt.parameters.options.option
2828import com.github.ajalt.clikt.parameters.types.file
2929import eu.geekplace.javapinning.JavaPinning
30+ import okhttp3.Interceptor
3031import okhttp3.OkHttpClient
3132import okhttp3.Request
3233import org.bouncycastle.cert.X509CertificateHolder
@@ -90,6 +91,7 @@ object PlatformCLI : CliktCommand(name = "spp-cli", allowMultipleSubcommands = t
9091
9192 val httpClient = if (certFingerprint != null ) {
9293 OkHttpClient ().newBuilder()
94+ .addInterceptor(loggingInterceptor())
9395 .hostnameVerifier { _, _ -> true }
9496 .sslSocketFactory(
9597 JavaPinning .forPin(" CERTSHA256:$certFingerprint " ).socketFactory,
@@ -108,6 +110,7 @@ object PlatformCLI : CliktCommand(name = "spp-cli", allowMultipleSubcommands = t
108110 }.socketFactory
109111
110112 OkHttpClient ().newBuilder()
113+ .addInterceptor(loggingInterceptor())
111114 .hostnameVerifier { _, _ -> true }
112115 .sslSocketFactory(insecureSocketFactory, naiveTrustManager)
113116 .build()
@@ -198,4 +201,20 @@ object PlatformCLI : CliktCommand(name = "spp-cli", allowMultipleSubcommands = t
198201 d.doFinal(result, 0 )
199202 return result
200203 }
204+
205+ private fun loggingInterceptor () = Interceptor {
206+ val request = it.request()
207+ val sendTime = System .nanoTime()
208+ log.info(
209+ " Sending request to {}\n {}" ,
210+ request.url, request.headers
211+ )
212+ val response = it.proceed(request)
213+ val responseTime = System .nanoTime()
214+ log.info(
215+ " Received response for {} in {}ms\n {}" ,
216+ response.request.url, (responseTime - sendTime) / 1e6, response.headers
217+ )
218+ response
219+ }
201220}
0 commit comments