Remove cookie jar

release^2
jhengazuki 2 months ago
parent be9623008f
commit c4fd226576
  1. 6
      app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java
  2. 87
      catvod/src/main/java/com/github/catvod/net/OkCookieJar.java
  3. 2
      catvod/src/main/java/com/github/catvod/net/OkHttp.java
  4. 3
      catvod/src/main/java/com/github/catvod/net/interceptor/RequestInterceptor.java

@ -7,6 +7,7 @@ import android.net.Uri;
import android.net.http.SslError;
import android.text.TextUtils;
import android.view.ViewGroup;
import android.webkit.CookieManager;
import android.webkit.SslErrorHandler;
import android.webkit.WebResourceRequest;
import android.webkit.WebResourceResponse;
@ -25,7 +26,6 @@ import com.fongmi.android.tv.impl.ParseCallback;
import com.fongmi.android.tv.ui.dialog.WebDialog;
import com.fongmi.android.tv.utils.Sniffer;
import com.github.catvod.crawler.Spider;
import com.github.catvod.net.OkCookieJar;
import com.github.catvod.utils.Util;
import com.google.common.net.HttpHeaders;
import com.orhanobut.logger.Logger;
@ -100,15 +100,15 @@ public class CustomWebView extends WebView implements DialogInterface.OnDismissL
}
private void start(Map<String, String> headers) {
OkCookieJar.setAcceptThirdPartyCookies(this);
CookieManager.getInstance().setAcceptThirdPartyCookies(this, true);
checkHeader(url, headers);
loadUrl(url, headers);
}
private void checkHeader(String url, Map<String, String> headers) {
for (String key : headers.keySet()) {
if (HttpHeaders.COOKIE.equalsIgnoreCase(key)) OkCookieJar.sync(url, headers.get(key));
if (HttpHeaders.USER_AGENT.equalsIgnoreCase(key)) getSettings().setUserAgentString(headers.get(key));
if (HttpHeaders.COOKIE.equalsIgnoreCase(key)) CookieManager.getInstance().setCookie(url, headers.get(key));
}
}

@ -1,87 +0,0 @@
package com.github.catvod.net;
import android.text.TextUtils;
import android.webkit.CookieManager;
import android.webkit.WebView;
import androidx.annotation.NonNull;
import com.google.common.net.HttpHeaders;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import okhttp3.Cookie;
import okhttp3.CookieJar;
import okhttp3.HttpUrl;
import okhttp3.Request;
public class OkCookieJar implements CookieJar {
private CookieManager manager;
private static class Loader {
static volatile OkCookieJar INSTANCE = new OkCookieJar();
}
public static OkCookieJar get() {
return Loader.INSTANCE;
}
private OkCookieJar() {
try {
manager = CookieManager.getInstance();
} catch (Throwable ignored) {
}
}
public static void setAcceptThirdPartyCookies(WebView view) {
try {
get().manager.setAcceptThirdPartyCookies(view, true);
} catch (Throwable ignored) {
}
}
public static void sync(HttpUrl url, Request request) {
if (!"127.0.0.1".equals(url.host())) sync(url.toString(), request.header(HttpHeaders.COOKIE));
}
public static void sync(String url, String cookie) {
try {
if (TextUtils.isEmpty(cookie)) return;
for (String split : cookie.split(";")) get().manager.setCookie(url, split);
get().manager.flush();
} catch (Throwable ignored) {
}
}
private void add(List<Cookie> items, Cookie cookie) {
if (cookie != null) items.add(cookie);
}
@NonNull
@Override
public synchronized List<Cookie> loadForRequest(@NonNull HttpUrl url) {
try {
List<Cookie> items = new ArrayList<>();
String cookie = manager.getCookie(url.toString());
if (TextUtils.isEmpty(cookie)) return Collections.emptyList();
if ("127.0.0.1".equals(url.host())) return Collections.emptyList();
for (String split : cookie.split(";")) add(items, Cookie.parse(url, split));
return items;
} catch (Throwable e) {
return Collections.emptyList();
}
}
@Override
public synchronized void saveFromResponse(@NonNull HttpUrl url, @NonNull List<Cookie> cookies) {
try {
if ("127.0.0.1".equals(url.host())) return;
for (Cookie cookie : cookies) manager.setCookie(url.toString(), cookie.toString());
manager.flush();
} catch (Throwable ignored) {
}
}
}

@ -204,7 +204,7 @@ public class OkHttp {
}
private static OkHttpClient.Builder getBuilder() {
OkHttpClient.Builder builder = new OkHttpClient.Builder().cookieJar(OkCookieJar.get()).addInterceptor(requestInterceptor()).addInterceptor(authInterceptor()).addNetworkInterceptor(responseInterceptor()).connectTimeout(TIMEOUT, TimeUnit.MILLISECONDS).readTimeout(TIMEOUT, TimeUnit.MILLISECONDS).writeTimeout(TIMEOUT, TimeUnit.MILLISECONDS).dns(dns()).hostnameVerifier((hostname, session) -> true).sslSocketFactory(getSSLContext().getSocketFactory(), trustAllCertificates());
OkHttpClient.Builder builder = new OkHttpClient.Builder().addInterceptor(requestInterceptor()).addInterceptor(authInterceptor()).addNetworkInterceptor(responseInterceptor()).connectTimeout(TIMEOUT, TimeUnit.MILLISECONDS).readTimeout(TIMEOUT, TimeUnit.MILLISECONDS).writeTimeout(TIMEOUT, TimeUnit.MILLISECONDS).dns(dns()).hostnameVerifier((hostname, session) -> true).sslSocketFactory(getSSLContext().getSocketFactory(), trustAllCertificates());
HttpLoggingInterceptor logging = new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY);
builder.proxyAuthenticator(authenticator());
//builder.addNetworkInterceptor(logging);

@ -2,8 +2,6 @@ package com.github.catvod.net.interceptor;
import androidx.annotation.NonNull;
import com.github.catvod.net.OkCookieJar;
import java.io.IOException;
import java.util.concurrent.ConcurrentHashMap;
@ -31,7 +29,6 @@ public class RequestInterceptor implements Interceptor {
Request.Builder builder = request.newBuilder();
HttpUrl url = request.url();
checkAuth(url, builder);
OkCookieJar.sync(url, request);
return chain.proceed(builder.build());
}

Loading…
Cancel
Save