okjack
FongMi 2 years ago
parent a0787719b4
commit 09f6362256
  1. 3
      app/src/main/java/com/fongmi/android/tv/ui/custom/CustomWebView.java
  2. 26
      catvod/src/main/java/com/github/catvod/net/OkCookieJar.java
  3. 2
      quickjs/src/main/java/com/fongmi/quickjs/utils/Connect.java

@ -31,6 +31,7 @@ import com.fongmi.android.tv.bean.Site;
import com.fongmi.android.tv.impl.ParseCallback;
import com.fongmi.android.tv.utils.Sniffer;
import com.github.catvod.crawler.Spider;
import com.github.catvod.net.OkCookieJar;
import com.google.common.net.HttpHeaders;
import com.orhanobut.logger.Logger;
@ -113,7 +114,7 @@ public class CustomWebView extends WebView {
private void checkHeader(String url, Map<String, String> headers) {
for (String key : headers.keySet()) {
if (HttpHeaders.COOKIE.equalsIgnoreCase(key)) CookieManager.getInstance().setCookie(url, headers.get(key));
if (HttpHeaders.COOKIE.equalsIgnoreCase(key)) OkCookieJar.sync(url, headers.get(key));
if (HttpHeaders.USER_AGENT.equalsIgnoreCase(key)) getSettings().setUserAgentString(headers.get(key));
}
}

@ -6,7 +6,6 @@ import android.webkit.CookieManager;
import androidx.annotation.NonNull;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
@ -16,23 +15,40 @@ import okhttp3.HttpUrl;
public class OkCookieJar implements CookieJar {
private CookieManager manager;
public OkCookieJar() {
try {
manager = CookieManager.getInstance();
} catch (Throwable ignored) {
}
}
public static void sync(String url, String cookie) {
if (TextUtils.isEmpty(cookie)) return;
for (String split : cookie.split(";")) {
CookieManager.getInstance().setCookie(url, split);
}
}
@NonNull
@Override
public synchronized List<Cookie> loadForRequest(@NonNull HttpUrl url) {
try {
List<Cookie> items = new ArrayList<>();
String cookie = CookieManager.getInstance().getCookie(url.toString());
if (!TextUtils.isEmpty(cookie)) for (String split : cookie.split(";")) items.add(Cookie.parse(url, split));
String cookie = manager.getCookie(url.toString());
if (TextUtils.isEmpty(cookie)) return Collections.emptyList();
for (String split : cookie.split(";")) items.add(Cookie.parse(url, split));
return items;
} catch (Throwable e) {
return new ArrayList<>();
return Collections.emptyList();
}
}
@Override
public synchronized void saveFromResponse(@NonNull HttpUrl url, @NonNull List<Cookie> cookies) {
try {
for (Cookie cookie : cookies) CookieManager.getInstance().setCookie(url.toString(), cookie.toString());
for (Cookie cookie : cookies) manager.setCookie(url.toString(), cookie.toString());
} catch (Throwable ignored) {
}
}

@ -1,6 +1,7 @@
package com.fongmi.quickjs.utils;
import com.fongmi.quickjs.bean.Req;
import com.github.catvod.net.OkCookieJar;
import com.github.catvod.net.OkHttp;
import com.github.catvod.utils.Json;
import com.github.catvod.utils.Util;
@ -25,6 +26,7 @@ import okhttp3.Response;
public class Connect {
public static Call to(String url, Req req) {
OkCookieJar.sync(url, req.getHeader().get(HttpHeaders.COOKIE));
OkHttpClient client = OkHttp.client(req.isRedirect(), req.getTimeout());
return client.newCall(getRequest(url, req, Headers.of(req.getHeader())));
}

Loading…
Cancel
Save