这个问题困扰了两三天,目前一步一步分析出来应该是解压的问题。请问此文件到底是什么解压方式?该如何通过工具解压?
文件示例: https://api.bilibili.com/x/v1/dm/list.so?oid=71163662
部分 Header:
Content-Encoding: deflate
Content-Type: text/xml
Transfer-Encoding: chunked
Accept-Encoding: gzip, deflate, br
最初:采用 Aria2 下载时,已添加 --http-accept-gzip,但依旧报错,incorrect header check
Exception: [AbstractCommand.cc:350] errorCode=1 URI=https://api.bilibili.com/x/v1/dm/list.so?oid=71163662 -> [GZipDecodingStreamFilter.cc:110] errorCode=1 libz::inflate() failed. cause:incorrect header check
已尝试的方法:
① curl -O url --compressed,成功解压,文件正常显示!唯一成功的途径。
② bandzip 为文件损坏,gzip 为 not in gzip format
③ fs.readFile('1.gz', function(err, data){ console.log(data) })
Buffer 94 bd 5b 73 5c 49 72 26 f8 57 30 78 18 d3 8c 38 47 e1 11 ee 1e 11 36 25 68 6a ba 5b 9a b5 51 4b 6d dd db 3b ad 7d 59 4b 24 12 dd 1c 75 b1 ca ea 22 55 ...
④ node.js:Gunzip/Inflate, Error: incorrect header check
const fs = require('fs'), zlib = require('zlib') fs.createReadStream('./1.gz').pipe(zlib.createGunzip()).pipe(fs.createWriteStream('1.xml')) console.log("文件解压完成。")
希望大家可以帮忙看看,感激不尽!