diff --git a/app/build.gradle b/app/build.gradle index b4bfe16..79fcc65 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -33,6 +33,7 @@ android { dependencies { implementation 'com.google.net.cronet:cronet-okhttp:0.1.0' + implementation 'androidx.annotation:annotation:1.5.0' implementation 'com.squareup.okhttp3:okhttp:3.12.13' implementation 'com.google.code.gson:gson:2.8.6' implementation 'cn.wanghaomiao:JsoupXpath:2.5.1' diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 5e0d2f1..481d17d 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -1,5 +1,6 @@ # Merge -flattenpackagehierarchy com.github.catvod.spider.merge +-dontwarn org.slf4j.impl.StaticLoggerBinder # Spider -keep class com.github.catvod.crawler.* { *; } diff --git a/app/src/main/java/com/github/catvod/net/Cronet.java b/app/src/main/java/com/github/catvod/net/Cronet.java deleted file mode 100644 index 92fd7ce..0000000 --- a/app/src/main/java/com/github/catvod/net/Cronet.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.github.catvod.net; - -import com.github.catvod.crawler.Spider; -import com.github.catvod.spider.Init; -import com.google.net.cronet.okhttptransport.CronetInterceptor; - -import org.chromium.net.CronetEngine; - -import java.util.List; -import java.util.Map; -import java.util.concurrent.TimeUnit; - -import okhttp3.Dns; -import okhttp3.OkHttpClient; - -public class Cronet { - - private final OkHttpClient noRedirect; - private final OkHttpClient client; - - private static class Loader { - static volatile Cronet INSTANCE = new Cronet(); - } - - public static Cronet get() { - return Loader.INSTANCE; - } - - public Cronet() { - client = getBuilder().build(); - noRedirect = client.newBuilder().followRedirects(false).followSslRedirects(false).build(); - } - - private OkHttpClient.Builder getBuilder() { - return new OkHttpClient.Builder().dns(safeDns()).addInterceptor(CronetInterceptor.newBuilder(new CronetEngine.Builder(Init.context()).build()).build()).callTimeout(30, TimeUnit.SECONDS).readTimeout(30, TimeUnit.SECONDS).writeTimeout(30, TimeUnit.SECONDS).connectTimeout(30, TimeUnit.SECONDS).retryOnConnectionFailure(true).hostnameVerifier(SSLSocketFactoryCompat.hostnameVerifier).sslSocketFactory(new SSLSocketFactoryCompat(), SSLSocketFactoryCompat.trustAllCert); - } - - private static OkHttpClient client() { - return get().client; - } - - private static OkHttpClient noRedirect() { - return get().noRedirect; - } - - public static Dns safeDns() { - try { - return (Dns) Spider.class.getMethod("safeDns").invoke(null); - } catch (Exception e) { - return Dns.SYSTEM; - } - } - - public static void stringNoRedirect(String url, Map header, Map> respHeader) { - string(noRedirect(), OkHttp.GET, url, null, null, header, respHeader); - } - - public static String string(OkHttpClient client, String method, String url, String tag, Map params, Map header, Map> respHeader) { - return new OkRequest(method, url, params, header, respHeader).tag(tag).execute(client); - } - - public static String string(String url) { - return string(url, null); - } - - public static String string(String url, Map header) { - return string(url, header, null); - } - - public static String string(String url, Map header, Map> respHeader) { - return string(url, null, header, respHeader); - } - - public static String string(String url, Map params, Map header, Map> respHeader) { - return string(url, null, params, header, respHeader); - } - - public static String string(String url, String tag, Map header) { - return string(url, tag, null, header, null); - } - - public static String string(String url, String tag, Map params, Map header, Map> respHeader) { - return string(client(), OkHttp.GET, url, tag, params, header, respHeader); - } - - public static String post(String url, Map params) { - return post(url, params, null); - } - - public static String post(String url, Map params, Map header) { - return post(url, params, header, null); - } - - public static String post(String url, Map params, Map header, Map> respHeader) { - return string(client(), OkHttp.POST, url, null, params, header, respHeader); - } - - public static String postJson(String url, String json) { - return postJson(url, json, null); - } - - public static String postJson(String url, String json, Map header) { - return new OkRequest(OkHttp.POST, url, json, header).execute(client()); - } - - public static String getRedirectLocation(Map> headers) { - if (headers == null) return null; - if (headers.containsKey("location")) return headers.get("location").get(0); - if (headers.containsKey("Location")) return headers.get("Location").get(0); - return null; - } -} diff --git a/app/src/main/java/com/github/catvod/net/OkHttp.java b/app/src/main/java/com/github/catvod/net/OkHttp.java index 4eaedf6..b4b943b 100644 --- a/app/src/main/java/com/github/catvod/net/OkHttp.java +++ b/app/src/main/java/com/github/catvod/net/OkHttp.java @@ -1,6 +1,10 @@ package com.github.catvod.net; import com.github.catvod.crawler.Spider; +import com.github.catvod.spider.Init; +import com.google.net.cronet.okhttptransport.CronetInterceptor; + +import org.chromium.net.CronetEngine; import java.util.List; import java.util.Map; @@ -32,7 +36,7 @@ public class OkHttp { } private OkHttpClient.Builder getBuilder() { - return new OkHttpClient.Builder().dns(safeDns()).callTimeout(30, TimeUnit.SECONDS).readTimeout(30, TimeUnit.SECONDS).writeTimeout(30, TimeUnit.SECONDS).connectTimeout(30, TimeUnit.SECONDS).retryOnConnectionFailure(true).hostnameVerifier(SSLSocketFactoryCompat.hostnameVerifier).sslSocketFactory(new SSLSocketFactoryCompat(), SSLSocketFactoryCompat.trustAllCert); + return new OkHttpClient.Builder().dns(safeDns()).addInterceptor(CronetInterceptor.newBuilder(new CronetEngine.Builder(Init.context()).build()).build()).callTimeout(30, TimeUnit.SECONDS).readTimeout(30, TimeUnit.SECONDS).writeTimeout(30, TimeUnit.SECONDS).connectTimeout(30, TimeUnit.SECONDS).retryOnConnectionFailure(true).hostnameVerifier(SSLSocketFactoryCompat.hostnameVerifier).sslSocketFactory(new SSLSocketFactoryCompat(), SSLSocketFactoryCompat.trustAllCert); } private static OkHttpClient client() { diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index c773bf5..d25a994 100644 Binary files a/jar/custom_spider.jar and b/jar/custom_spider.jar differ diff --git a/jar/custom_spider.jar.md5 b/jar/custom_spider.jar.md5 index 5ab7dbe..84f93a8 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -e57bac3dfa1c49f28c44b56577e70786 +281195ff29b564bd774323e1cab13017