diff --git a/foudations/mogo-commons/build.gradle b/foudations/mogo-commons/build.gradle index 27c082a..28e905a 100644 --- a/foudations/mogo-commons/build.gradle +++ b/foudations/mogo-commons/build.gradle @@ -37,5 +37,7 @@ dependencies { api rootProject.ext.dependencies.retrofitadapter api rootProject.ext.dependencies.retrofitconvertergson api rootProject.ext.dependencies.retrofitconverterscalars + implementation project(path: ':foudations:mogo-httpdns') + implementation rootProject.ext.dependencies.okhttpinterceptor } \ No newline at end of file diff --git a/foudations/mogo-commons/src/main/java/com/mogo/cloud/commons/network/OkHttpFactory.kt b/foudations/mogo-commons/src/main/java/com/mogo/cloud/commons/network/OkHttpFactory.kt index 2e69bc1..0e177f9 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/cloud/commons/network/OkHttpFactory.kt +++ b/foudations/mogo-commons/src/main/java/com/mogo/cloud/commons/network/OkHttpFactory.kt @@ -4,11 +4,10 @@ import com.mogo.cloud.commons.network.NetConstants.Companion.CONNECT_TIMEOUT import com.mogo.cloud.commons.network.NetConstants.Companion.READ_TIMEOUT import com.mogo.cloud.commons.network.NetConstants.Companion.WRITE_TIMEOUT import com.mogo.cloud.commons.network.interceptor.HeaderNetworkInterceptor -import com.mogo.cloud.commons.network.interceptor.RequestLogInterceptor -import com.mogo.cloud.commons.network.interceptor.ResponseLogInterceptor import com.mogo.cloud.commons.utils.lookup import okhttp3.Dns import okhttp3.OkHttpClient +import okhttp3.logging.HttpLoggingInterceptor import java.net.InetAddress import java.util.concurrent.TimeUnit @@ -23,8 +22,7 @@ class OkHttpFactory private constructor() { companion object { val okHttpClient: OkHttpClient by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { OkHttpClient.Builder() - .addInterceptor(RequestLogInterceptor()) - .addInterceptor(ResponseLogInterceptor()) + .addInterceptor(HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY)) .addNetworkInterceptor(HeaderNetworkInterceptor()) .connectTimeout(CONNECT_TIMEOUT, TimeUnit.MILLISECONDS) .readTimeout(READ_TIMEOUT, TimeUnit.MILLISECONDS) diff --git a/foudations/mogo-commons/src/main/java/com/mogo/cloud/commons/network/interceptor/RequestLogInterceptor.kt b/foudations/mogo-commons/src/main/java/com/mogo/cloud/commons/network/interceptor/RequestLogInterceptor.kt deleted file mode 100644 index 2eda046..0000000 --- a/foudations/mogo-commons/src/main/java/com/mogo/cloud/commons/network/interceptor/RequestLogInterceptor.kt +++ /dev/null @@ -1,58 +0,0 @@ -package com.mogo.cloud.commons.network.interceptor - -import android.util.Log -import okhttp3.Interceptor -import okhttp3.Protocol -import okhttp3.Response -import okio.Buffer -import java.io.IOException -import java.nio.charset.Charset - -/** - * created by wujifei on 2021/1/20 10:48 - * describe: - */ -class RequestLogInterceptor : Interceptor { - private val TAG = "RequestLogInterceptor" - override fun intercept(chain: Interceptor.Chain): Response { - val request = chain.request() - val requestBody = request.body() - val hasRequestBody = requestBody != null - - var protocol = Protocol.HTTP_1_1.toString() - if (chain.connection() != null && chain.connection()!!.protocol() != null) { - protocol = chain.connection()!!.protocol().toString() - } - - val logMsg = StringBuilder() - logMsg.append("--> ") - logMsg.append(protocol).append(", ") - logMsg.append(request.method()).append(", ") - logMsg.append("Request Headers: ").append(request.headers()).append("\r\n") - logMsg.append(request.url()).append("\r\n") - if (hasRequestBody) { - logMsg.append("Content-Type: ").append(requestBody!!.contentType()).append(", ") - logMsg.append("\r\nContent-Length: ").append(requestBody!!.contentLength()) - try { - var body: String? = null - val UTF8 = Charset.forName("UTF-8") - val buffer = Buffer() - requestBody!!.writeTo(buffer) - var charset = UTF8 - val contentType = requestBody!!.contentType() - if (contentType != null) { - charset = contentType.charset(UTF8) - } - if (charset != null) { - body = buffer.readString(charset) - } - logMsg.append("\r\nContent-body: ").append(body) - } catch (e: IOException) { - e.printStackTrace() - } - } - logMsg.append("\r\n<-- end http request") - Log.d(TAG, logMsg.toString()) - return chain.proceed(request) - } -} \ No newline at end of file diff --git a/foudations/mogo-commons/src/main/java/com/mogo/cloud/commons/network/interceptor/ResponseLogInterceptor.kt b/foudations/mogo-commons/src/main/java/com/mogo/cloud/commons/network/interceptor/ResponseLogInterceptor.kt deleted file mode 100644 index 216bf23..0000000 --- a/foudations/mogo-commons/src/main/java/com/mogo/cloud/commons/network/interceptor/ResponseLogInterceptor.kt +++ /dev/null @@ -1,53 +0,0 @@ -package com.mogo.cloud.commons.network.interceptor - -import android.util.Log -import okhttp3.Interceptor -import okhttp3.MediaType -import okhttp3.Response -import okhttp3.ResponseBody -import java.util.concurrent.TimeUnit - -/** - * created by wujifei on 2021/1/20 10:50 - * describe: - */ -class ResponseLogInterceptor : Interceptor { - private val TAG = "ResponseLogInterceptor" - override fun intercept(chain: Interceptor.Chain): Response { - val startTime = System.nanoTime() - val response = chain.proceed(chain.request()) - val endTime = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startTime) - - val responseBody = response.body() - var responseContent: String? = null - var bodySize: String? = null - var contentType: MediaType? = null - var consumedResponse = false - - val logMsg = StringBuilder() - - if (responseBody != null) { - val contentLength = responseBody.contentLength() - bodySize = if (contentLength != -1L) "$contentLength-byte" else "unknown-length" - contentType = responseBody.contentType() - responseContent = responseBody.string() - consumedResponse = true - } - - logMsg.append("--> ") - logMsg.append(response.code()).append(" ") - logMsg.append(response.message()).append(" ") - logMsg.append(response.protocol()).append(" ") - logMsg.append(response.request().url()).append("\r\n") - logMsg.append("Response Content: ").append(responseContent).append("\r\n") - logMsg.append("Content-Type: ").append(contentType).append(", ") - logMsg.append("Content-Length: ").append(bodySize).append(", ") - logMsg.append(" (").append(endTime).append("ms)") - logMsg.append(" <-- end http response") - - Log.d(TAG, logMsg.toString()) - - - return if (consumedResponse) response.newBuilder().body(ResponseBody.create(contentType, responseContent)).build() else response - } -} \ No newline at end of file