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(); }