This commit is contained in:
Horis
2023-05-14 18:16:50 +08:00
parent 7a7bffb557
commit b090070ac3
4 changed files with 9 additions and 16 deletions
+2 -2
View File
@@ -71,8 +71,8 @@ android {
} }
applicationIdSuffix '.release' applicationIdSuffix '.release'
minifyEnabled true minifyEnabled false
shrinkResources true //shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
} }
debug { debug {
@@ -49,6 +49,7 @@ abstract class AbsCallBack(
private var cancelJob: Coroutine<*>? = null private var cancelJob: Coroutine<*>? = null
private var followRedirect = false private var followRedirect = false
private var enableCookieJar = false private var enableCookieJar = false
private var redirectRequest: Request? = null
init { init {
if (originalRequest.header(cookieJarHeader) != null) { if (originalRequest.header(cookieJarHeader) != null) {
@@ -108,7 +109,7 @@ abstract class AbsCallBack(
if (enableCookieJar) { if (enableCookieJar) {
CookieManager.saveResponse(response) CookieManager.saveResponse(response)
} }
originalRequest = buildRedirectRequest(response, originalRequest.method, newLocationUrl) redirectRequest = buildRedirectRequest(response, originalRequest.method, newLocationUrl)
} }
request.cancel() request.cancel()
} }
@@ -189,10 +190,10 @@ abstract class AbsCallBack(
if (followRedirect) { if (followRedirect) {
followRedirect = false followRedirect = false
if (enableCookieJar) { if (enableCookieJar) {
val newRequest = CookieManager.loadRequest(originalRequest) val newRequest = CookieManager.loadRequest(redirectRequest!!)
buildRequest(newRequest, this)?.start() buildRequest(newRequest, this)?.start()
} else { } else {
buildRequest(originalRequest, this)?.start() buildRequest(redirectRequest!!, this)?.start()
} }
return return
} }
@@ -67,7 +67,7 @@ val okHttpClient: OkHttpClient by lazy {
builder.addHeader("Keep-Alive", "300") builder.addHeader("Keep-Alive", "300")
builder.addHeader("Connection", "Keep-Alive") builder.addHeader("Connection", "Keep-Alive")
builder.addHeader("Cache-Control", "no-cache") builder.addHeader("Cache-Control", "no-cache")
chain.proceed(builder.build()).newBuilder().removeHeader(cookieJarHeader).build() chain.proceed(builder.build())
}) })
.addNetworkInterceptor { chain -> .addNetworkInterceptor { chain ->
var request = chain.request() var request = chain.request()
@@ -79,11 +79,10 @@ val okHttpClient: OkHttpClient by lazy {
request = CookieManager.loadRequest(requestBuilder.build()) request = CookieManager.loadRequest(requestBuilder.build())
} }
var networkResponse = chain.proceed(request) val networkResponse = chain.proceed(request)
if (enableCookieJar) { if (enableCookieJar) {
CookieManager.saveResponse(networkResponse) CookieManager.saveResponse(networkResponse)
networkResponse = networkResponse.newBuilder().header(cookieJarHeader, "1").build()
} }
networkResponse networkResponse
} }
@@ -376,10 +376,6 @@ class ObsoleteUrlFactory(private var client: OkHttpClient) : URLStreamHandlerFac
val clientBuilder: OkHttpClient.Builder = client.newBuilder() val clientBuilder: OkHttpClient.Builder = client.newBuilder()
clientBuilder.interceptors().clear() clientBuilder.interceptors().clear()
clientBuilder.interceptors().add(UnexpectedException.INTERCEPTOR) clientBuilder.interceptors().add(UnexpectedException.INTERCEPTOR)
clientBuilder.addInterceptor { chain ->
val response = chain.proceed(chain.request())
response.newBuilder().removeHeader(cookieJarHeader).build()
}
clientBuilder.networkInterceptors().clear() clientBuilder.networkInterceptors().clear()
clientBuilder.networkInterceptors().add(networkInterceptor) clientBuilder.networkInterceptors().add(networkInterceptor)
@@ -393,13 +389,10 @@ class ObsoleteUrlFactory(private var client: OkHttpClient) : URLStreamHandlerFac
request1 = CookieManager.loadRequest(requestBuilder.build()) request1 = CookieManager.loadRequest(requestBuilder.build())
} }
var networkResponse = chain.proceed(request1) val networkResponse = chain.proceed(request1)
if (enableCookieJar) { if (enableCookieJar) {
CookieManager.saveResponse(networkResponse) CookieManager.saveResponse(networkResponse)
networkResponse = networkResponse.newBuilder()
.header(cookieJarHeader, "1")
.build()
} }
networkResponse networkResponse
} }