图片加载支持@Headers

pull/96/head
21561 3 years ago
parent 73f8328b79
commit 5775c0e730
  1. 69
      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();
}

Loading…
Cancel
Save