diff --git a/catvod/src/main/java/com/github/catvod/bean/Proxy.java b/catvod/src/main/java/com/github/catvod/bean/Proxy.java index 363aff310..d3d8a13fa 100644 --- a/catvod/src/main/java/com/github/catvod/bean/Proxy.java +++ b/catvod/src/main/java/com/github/catvod/bean/Proxy.java @@ -10,12 +10,9 @@ import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; import java.net.InetSocketAddress; -import java.util.ArrayList; import java.util.Collections; -import java.util.Comparator; import java.util.List; import java.util.Objects; -import java.util.stream.Collectors; public class Proxy implements Comparable { diff --git a/catvod/src/main/java/com/github/catvod/net/OkAuthenticator.java b/catvod/src/main/java/com/github/catvod/net/OkAuthenticator.java index ffaae20f2..feef4854f 100644 --- a/catvod/src/main/java/com/github/catvod/net/OkAuthenticator.java +++ b/catvod/src/main/java/com/github/catvod/net/OkAuthenticator.java @@ -7,10 +7,10 @@ import androidx.annotation.Nullable; import com.github.catvod.bean.Proxy; import com.github.catvod.utils.Auth; +import com.github.catvod.utils.Util; import com.google.common.net.HttpHeaders; import java.net.InetSocketAddress; -import java.util.ArrayList; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; diff --git a/catvod/src/main/java/com/github/catvod/net/OkProxySelector.java b/catvod/src/main/java/com/github/catvod/net/OkProxySelector.java index 33e2b4ded..87d80ccba 100644 --- a/catvod/src/main/java/com/github/catvod/net/OkProxySelector.java +++ b/catvod/src/main/java/com/github/catvod/net/OkProxySelector.java @@ -7,12 +7,8 @@ import java.io.IOException; import java.net.ProxySelector; import java.net.SocketAddress; import java.net.URI; -import java.util.ArrayList; -import java.util.Comparator; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; -import java.util.function.Consumer; -import java.util.stream.Collectors; import java.util.stream.Stream; public class OkProxySelector extends ProxySelector { diff --git a/catvod/src/main/java/com/github/catvod/net/interceptor/ResponseInterceptor.java b/catvod/src/main/java/com/github/catvod/net/interceptor/ResponseInterceptor.java index 04c07eeb6..5a0efa3f6 100644 --- a/catvod/src/main/java/com/github/catvod/net/interceptor/ResponseInterceptor.java +++ b/catvod/src/main/java/com/github/catvod/net/interceptor/ResponseInterceptor.java @@ -9,7 +9,6 @@ import com.github.catvod.utils.Util; import com.google.common.net.HttpHeaders; import java.io.IOException; -import java.util.ArrayList; import java.util.List; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArrayList; diff --git a/catvod/src/main/java/com/github/catvod/utils/Auth.java b/catvod/src/main/java/com/github/catvod/utils/Auth.java index 969ecc815..382305a1a 100644 --- a/catvod/src/main/java/com/github/catvod/utils/Auth.java +++ b/catvod/src/main/java/com/github/catvod/utils/Auth.java @@ -2,6 +2,7 @@ package com.github.catvod.utils; import android.util.Base64; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -14,11 +15,11 @@ import okhttp3.Request; public class Auth { - private static final Pattern DIGEST = Pattern.compile("(\\w+)=\\s*([^,]+)\\s*"); + private static final Pattern DIGEST = Pattern.compile("(\\w+)=(?:\"([^\"]*)\"|([^,\\s\"]+))"); public static String basic(String userInfo) { if (!userInfo.contains(":")) userInfo += ":"; - return "Basic " + Base64.encodeToString(userInfo.getBytes(), Base64.NO_WRAP); + return "Basic " + Base64.encodeToString(userInfo.getBytes(StandardCharsets.UTF_8), Base64.NO_WRAP); } public static String digest(String userInfo, String header, Request request) { @@ -77,7 +78,11 @@ public class Auth { private static Map parseDigest(String header) { Map params = new HashMap<>(); Matcher matcher = DIGEST.matcher(header.trim()); - while (matcher.find()) params.put(matcher.group(1), matcher.group(2).replaceAll("\"", "").trim()); + while (matcher.find()) { + String key = matcher.group(1); + String value = matcher.group(2) != null ? matcher.group(2) : matcher.group(3); + if (value != null) params.put(key, value.trim()); + } return params; } } diff --git a/catvod/src/main/java/com/github/catvod/utils/Util.java b/catvod/src/main/java/com/github/catvod/utils/Util.java index aec1b68ec..b54e722b3 100644 --- a/catvod/src/main/java/com/github/catvod/utils/Util.java +++ b/catvod/src/main/java/com/github/catvod/utils/Util.java @@ -14,6 +14,7 @@ import java.net.Inet4Address; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; +import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Enumeration; @@ -65,7 +66,7 @@ public class Util { try { if (TextUtils.isEmpty(src)) return ""; MessageDigest digest = MessageDigest.getInstance("MD5"); - byte[] bytes = digest.digest(src.getBytes()); + byte[] bytes = digest.digest(src.getBytes(StandardCharsets.UTF_8)); BigInteger no = new BigInteger(1, bytes); StringBuilder sb = new StringBuilder(no.toString(16)); while (sb.length() < 32) sb.insert(0, "0");