diff --git a/app/src/main/java/com/github/catvod/utils/ProxyVideo.java b/app/src/main/java/com/github/catvod/utils/ProxyVideo.java index daff13fa..64a02bf7 100644 --- a/app/src/main/java/com/github/catvod/utils/ProxyVideo.java +++ b/app/src/main/java/com/github/catvod/utils/ProxyVideo.java @@ -82,19 +82,20 @@ public class ProxyVideo { SpiderDebug.log("--proxyMultiThread: start "); Map newHeaders = new HashMap<>(headers); newHeaders.put("range", "bytes=0-0"); + newHeaders.put("Range", "bytes=0-0"); Object[] info = proxy(url, newHeaders); int code = (int) info[0]; if (code != 206) { return proxy(url, headers); } - String contentRange = ((Map) info[3]).get("Content-Range"); + String contentRange = StringUtils.isAllBlank(((Map) info[3]).get("Content-Range")) ? ((Map) info[3]).get("content-range") : ((Map) info[3]).get("Content-Range"); SpiderDebug.log("--contentRange:" + contentRange); //文件总大小 String total = StringUtils.split(contentRange, "/")[1]; SpiderDebug.log("--文件总大小:" + total); - String range = headers.get("range"); + String range = StringUtils.isAllBlank(headers.get("range")) ? headers.get("Range") : headers.get("range"); SpiderDebug.log("---proxyMultiThread,Range:" + range); Map rangeObj = parseRange(range); //没有range,无需分割 @@ -115,6 +116,7 @@ public class ProxyVideo { Map headerNew = new HashMap<>(headers); headerNew.put("range", newRange); + headerNew.put("Range", newRange); Future result = service.submit(() -> { try { @@ -135,6 +137,7 @@ public class ProxyVideo { response = future.get(); bytes = ArrayUtils.addAll(bytes, response.body().bytes()); SpiderDebug.log("---第" + i + "块下载完成" + ";Content-Range:" + response.headers().get("Content-Range")); + SpiderDebug.log("---第" + i + "块下载完成" + ";content-range:" + response.headers().get("content-range")); } service.shutdown(); @@ -150,7 +153,9 @@ public class ProxyVideo { } respHeaders.put("Content-Length", String.valueOf(bytes.length)); + respHeaders.put("content-length", String.valueOf(bytes.length)); respHeaders.put("Content-Range", String.format("bytes %s-%s/%s", partList.get(0)[0], partList.get(THREAD_NUM - 1)[1], total)); + respHeaders.put("content-range", String.format("bytes %s-%s/%s", partList.get(0)[0], partList.get(THREAD_NUM - 1)[1], total)); SpiderDebug.log("++proxy res contentType:" + contentType); // SpiderDebug.log("++proxy res body:" + response.body()); SpiderDebug.log("++proxy res respHeaders:" + Json.toJson(respHeaders)); diff --git a/jar/custom_spider.jar b/jar/custom_spider.jar index e95c826e..5b09d334 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 4d8c62c5..9a5bfbbc 100644 --- a/jar/custom_spider.jar.md5 +++ b/jar/custom_spider.jar.md5 @@ -1 +1 @@ -0c62b039f16a98ecdb8b6e8ace67d52a +a1595a0b27f113878d7f0688ffddb952 diff --git a/json/test.json b/json/test.json index 1d3d9776..d246a11e 100644 --- a/json/test.json +++ b/json/test.json @@ -1,5 +1,5 @@ { - "spider": "https://ghproxy.net/https://raw.githubusercontent.com/lushunming/AndroidCatVodSpider/multiThread/jar/custom_spider.jar;md5;0c62b039f16a98ecdb8b6e8ace67d52a", + "spider": "https://ghproxy.net/https://raw.githubusercontent.com/lushunming/AndroidCatVodSpider/multiThread/jar/custom_spider.jar;md5;a1595a0b27f113878d7f0688ffddb952", "lives": [ { "name": "电视直播",