PlayAndroid icon indicating copy to clipboard operation
PlayAndroid copied to clipboard

master 分支ServiceCreator 的一个适配错误

Open zcwfeng opened this issue 2 years ago • 0 comments

Before:

private val okHttpClient by lazy (LazyThreadSafetyMode.SYNCHRONIZED){ OkHttpClient().newBuilder().apply { connectTimeout(CONNECT_TIMEOUT, TimeUnit.SECONDS) readTimeout(READ_TIMEOUT, TimeUnit.SECONDS) // get response cookie addInterceptor(HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY)) addInterceptor { val request = it.request() val response = it.proceed(request) val requestUrl = request.url.toString() val domain = request.url.host // set-cookie maybe has multi, login to save cookie if ((requestUrl.contains(SAVE_USER_LOGIN_KEY) || requestUrl.contains( SAVE_USER_REGISTER_KEY )) && response.headers(SET_COOKIE_KEY).isNotEmpty() ) { val cookies = response.headers(SET_COOKIE_KEY) val cookie = encodeCookie(cookies) saveCookie(requestUrl, domain, cookie) } response } addInterceptor { val request = it.request() val builder = request.newBuilder() val domain = request.url.host // get domain cookie if (domain.isNotEmpty()) { val spDomain: String = DataStoreUtils.readStringData(domain, "") val cookie: String = spDomain.ifEmpty { "" } if (cookie.isNotEmpty()) { builder.addHeader(COOKIE_NAME, cookie) } } it.proceed(builder.build()) } }.build()

}

我修改之后:

private val okHttpClient by lazy (LazyThreadSafetyMode.SYNCHRONIZED){ OkHttpClient().newBuilder().apply { connectTimeout(CONNECT_TIMEOUT, TimeUnit.SECONDS) readTimeout(READ_TIMEOUT, TimeUnit.SECONDS) // get response cookie addInterceptor(HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY)) addInterceptor { val request = it.request() val response = it.proceed(request) val requestUrl = request.url().toString() val domain = request.url().uri().host // set-cookie maybe has multi, login to save cookie if ((requestUrl.contains(SAVE_USER_LOGIN_KEY) || requestUrl.contains( SAVE_USER_REGISTER_KEY )) && response.headers(SET_COOKIE_KEY).isNotEmpty() ) { val cookies = response.headers(SET_COOKIE_KEY) val cookie = encodeCookie(cookies) saveCookie(requestUrl, domain, cookie) } response } addInterceptor { val request = it.request() val builder = request.newBuilder() val domain = request.url.host // get domain cookie if (domain.isNotEmpty()) { val spDomain: String = DataStoreUtils.readStringData(domain, "") val cookie: String = spDomain.ifEmpty { "" } if (cookie.isNotEmpty()) { builder.addHeader(COOKIE_NAME, cookie) } } it.proceed(builder.build()) } }.build()

}

但是依然抱错: /PlayAndroid/network/src/main/java/com/zj/network/base/ServiceCreator.kt: (35, 28): Unresolved reference: HttpLoggingInterceptor

zcwfeng avatar Feb 13 '23 02:02 zcwfeng