From 5775c0e7308abfa243a53f9d0a50f31fd3a5cfb9 Mon Sep 17 00:00:00 2001 From: 21561 <215613905@qq.com> Date: Sun, 16 Jul 2023 20:22:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BE=E7=89=87=E5=8A=A0=E8=BD=BD=E6=94=AF?= =?UTF-8?q?=E6=8C=81@Headers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tvbox/osc/picasso/MyOkhttpDownLoader.java | 69 ++++++------------- 1 file changed, 22 insertions(+), 47 deletions(-) diff --git a/app/src/main/java/com/github/tvbox/osc/picasso/MyOkhttpDownLoader.java b/app/src/main/java/com/github/tvbox/osc/picasso/MyOkhttpDownLoader.java index cb482e9a..177c0d41 100644 --- a/app/src/main/java/com/github/tvbox/osc/picasso/MyOkhttpDownLoader.java +++ b/app/src/main/java/com/github/tvbox/osc/picasso/MyOkhttpDownLoader.java @@ -19,6 +19,9 @@ import android.text.TextUtils; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; + +import com.google.gson.Gson; +import com.google.gson.JsonObject; import com.squareup.picasso.Downloader; import java.io.IOException; @@ -59,59 +62,31 @@ public final class MyOkhttpDownLoader implements Downloader { @Override public Response load(@NonNull Request request) throws IOException { String url = request.url().toString(); - - String refer = null; - String ua = null; + String header = null; String cookie = null; + String ua = null; + String referer = null; - //检查链接里面是否有自定义cookie - String[] cookieUrl = url.split("@Cookie="); - if (cookieUrl.length > 1) { - url = cookieUrl[0]; - cookie = cookieUrl[1]; - } + //检查链接里面是否有自定义header + if (url.contains("@Headers=")) header =url.split("@Headers=")[1].split("@")[0]; + if (url.contains("@Cookie=")) cookie= url.split("@Cookie=")[1].split("@")[0]; + if (url.contains("@User-Agent=")) ua =url.split("@User-Agent=")[1].split("@")[0]; + if (url.contains("@Referer=")) referer= url.split("@Referer=")[1].split("@")[0]; - //检查链接里面是否有自定义UA和referer - String[] s = url.split("@Referer="); - if (s.length > 1) { - if (s[0].contains("@User-Agent=")) { - refer = s[1]; - url = s[0].split("@User-Agent=")[0]; - ua = s[0].split("@User-Agent=")[1]; - } else if (s[1].contains("@User-Agent=")) { - refer = s[1].split("@User-Agent=")[0]; - url = s[0]; - ua = s[1].split("@User-Agent=")[1]; - } else { - refer = s[1]; - url = s[0]; - } - } else { - if (url.contains("@Referer=")) { - url = url.replace("@Referer=", ""); - refer = ""; - } - if (url.contains("@User-Agent=")) { - ua = url.split("@User-Agent=")[1]; - url = url.split("@User-Agent=")[0]; - } - } + url = url.split("@")[0]; Request.Builder mRequestBuilder = new Request.Builder().url(url); - - if (!TextUtils.isEmpty(cookie)) { - mRequestBuilder.addHeader("cookie", cookieUrl[1]); - } - if (!TextUtils.isEmpty(ua)) { - if (TextUtils.isEmpty(refer)) { - mRequestBuilder.addHeader("user-agent", ua); - } else { - mRequestBuilder.addHeader("user-agent", ua).addHeader("referer", refer); - } - } else { - if (!TextUtils.isEmpty(refer)) { - mRequestBuilder.addHeader("referer", refer); + if(!TextUtils.isEmpty(header)) { + JsonObject jsonInfo = new Gson().fromJson(header, JsonObject.class); + for (String key : jsonInfo.keySet()) { + String val = jsonInfo.get(key).getAsString(); + mRequestBuilder.addHeader(key, val); } + }else { + if(!TextUtils.isEmpty(cookie))mRequestBuilder.addHeader("Cookie", cookie); + if(!TextUtils.isEmpty(ua))mRequestBuilder.addHeader("User-Agent", ua); + if(!TextUtils.isEmpty(referer))mRequestBuilder.addHeader("Referer", referer); } + return client.newCall(mRequestBuilder.build()).execute(); }