Преглед на файлове

fix:okhttp自动保存返回的cookie

Xwite преди 4 години
родител
ревизия
e69abf9ace
променени са 1 файла, в които са добавени 13 реда и са изтрити 0 реда
  1. 13 0
      app/src/main/java/io/legado/app/help/http/HttpHelper.kt

+ 13 - 0
app/src/main/java/io/legado/app/help/http/HttpHelper.kt

@@ -6,6 +6,9 @@ import io.legado.app.help.http.cronet.CronetInterceptor
 import io.legado.app.help.http.cronet.CronetLoader
 import io.legado.app.help.http.cronet.CronetLoader
 import okhttp3.ConnectionSpec
 import okhttp3.ConnectionSpec
 import okhttp3.Credentials
 import okhttp3.Credentials
+import okhttp3.CookieJar
+import okhttp3.Cookie
+import okhttp3.HttpUrl
 import okhttp3.Interceptor
 import okhttp3.Interceptor
 import okhttp3.OkHttpClient
 import okhttp3.OkHttpClient
 import java.net.InetSocketAddress
 import java.net.InetSocketAddress
@@ -29,6 +32,16 @@ val okHttpClient: OkHttpClient by lazy {
         .writeTimeout(15, TimeUnit.SECONDS)
         .writeTimeout(15, TimeUnit.SECONDS)
         .readTimeout(15, TimeUnit.SECONDS)
         .readTimeout(15, TimeUnit.SECONDS)
         .callTimeout(60, TimeUnit.SECONDS)
         .callTimeout(60, TimeUnit.SECONDS)
+        .cookieJar(object : CookieJar {
+            override fun saveFromResponse(url: HttpUrl, cookies: List<Cookie>) {
+                 cookies.forEach {
+                     CookieStore.setCookie(url.toString(), it.value)
+                 }
+            }
+            override fun loadForRequest(url: HttpUrl): List<Cookie> {
+                return ArrayList<Cookie>()
+            }
+        })
         .sslSocketFactory(SSLHelper.unsafeSSLSocketFactory, SSLHelper.unsafeTrustManager)
         .sslSocketFactory(SSLHelper.unsafeSSLSocketFactory, SSLHelper.unsafeTrustManager)
         .retryOnConnectionFailure(true)
         .retryOnConnectionFailure(true)
         .hostnameVerifier(SSLHelper.unsafeHostnameVerifier)
         .hostnameVerifier(SSLHelper.unsafeHostnameVerifier)