pull/181/head
FongMi 2 years ago
parent 534abf5058
commit 138128568a
  1. 19
      catvod/src/main/java/com/github/catvod/net/OkHttp.java
  2. 2
      catvod/src/main/java/com/github/catvod/net/OkProxySelector.java

@ -1,6 +1,7 @@
package com.github.catvod.net;
import android.net.Uri;
import android.text.TextUtils;
import androidx.collection.ArrayMap;
@ -9,6 +10,7 @@ import com.github.catvod.utils.Path;
import com.github.catvod.utils.Util;
import com.google.common.net.HttpHeaders;
import java.net.ProxySelector;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
@ -28,10 +30,15 @@ public class OkHttp {
private static final int TIMEOUT = 30 * 1000;
private static final int CACHE = 100 * 1024 * 1024;
private static final ProxySelector defaultSelector;
private DnsOverHttps dns;
private OkHttpClient client;
private ProxySelector selector;
private OkProxySelector selector;
static {
defaultSelector = ProxySelector.getDefault();
}
private static class Loader {
static volatile OkHttp INSTANCE = new OkHttp();
@ -52,14 +59,14 @@ public class OkHttp {
}
public void setProxy(String proxy) {
ProxySelector.setDefault(selector());
selector().setProxy(proxy);
ProxySelector.setDefault(TextUtils.isEmpty(proxy) ? defaultSelector : selector());
if (!TextUtils.isEmpty(proxy)) selector().setProxy(proxy);
client = null;
}
public static ProxySelector selector() {
public static OkProxySelector selector() {
if (get().selector != null) return get().selector;
return get().selector = new ProxySelector();
return get().selector = new OkProxySelector();
}
public static OkHttpClient client() {
@ -133,7 +140,7 @@ public class OkHttp {
private static OkHttpClient.Builder getBuilder() {
OkHttpClient.Builder builder = new OkHttpClient.Builder().addInterceptor(new OkhttpInterceptor()).connectTimeout(TIMEOUT, TimeUnit.MILLISECONDS).readTimeout(TIMEOUT, TimeUnit.MILLISECONDS).writeTimeout(TIMEOUT, TimeUnit.MILLISECONDS).dns(dns()).hostnameVerifier((hostname, session) -> true).sslSocketFactory(new SSLCompat(), SSLCompat.TM);
builder.proxySelector(selector());
builder.proxySelector(ProxySelector.getDefault());
return builder;
}
}

@ -14,7 +14,7 @@ import java.net.URI;
import java.util.Collections;
import java.util.List;
public class ProxySelector extends java.net.ProxySelector {
public class OkProxySelector extends java.net.ProxySelector {
private List<String> hosts;
private Proxy proxy;
Loading…
Cancel
Save