Javascript axios不返回完整数据 axios.get(downloadUrl,Object.assign({},this.tokens[token\u nr].config,{responseType:stream})) 。然后((响应)=>{ console.log(“HEADERS”,response.HEADERS) log(type of response.data,“response LENGTH”,response.data.LENGTH) const decryptedBuffer=encryptionService.decrypt(Buffer.from(response.data),infos); 解析(解密缓冲区); })

Javascript axios不返回完整数据 axios.get(downloadUrl,Object.assign({},this.tokens[token\u nr].config,{responseType:stream})) 。然后((响应)=>{ console.log(“HEADERS”,response.HEADERS) log(type of response.data,“response LENGTH”,response.data.LENGTH) const decryptedBuffer=encryptionService.decrypt(Buffer.from(response.data),infos); 解析(解密缓冲区); }),javascript,stream,axios,buffer,Javascript,Stream,Axios,Buffer,此axios请求应提供mp3文件的数据。我以前通过请求包获得了它,该请求包提供了一个二进制缓冲区(使用编码:null选项),我可以在encryptionService.decrypt()函数中使用它 在response.headers中,我可以看到它提供了与请求包相同的内容长度。但是当我打印response.data的长度时,它会更短。我尝试将ArrayBuffer和stream作为我的响应类型。另外,将ResponseType选项保留在外也无济于事。我应该怎么做才能得到完整的内容 部分日志:(

此axios请求应提供mp3文件的数据。我以前通过请求包获得了它,该请求包提供了一个二进制缓冲区(使用
编码:null
选项),我可以在
encryptionService.decrypt()函数中使用它

response.headers
中,我可以看到它提供了与请求包相同的内容长度。但是当我打印
response.data
的长度时,它会更短。我尝试将ArrayBuffer和stream作为我的响应类型。另外,将ResponseType选项保留在外也无济于事。我应该怎么做才能得到完整的内容

部分日志:(并非所有标题)


创建请求时,请尝试传递以下标头连接,保持活动状态。有时,它会在完全接收到响应之前关闭连接

   var axioRequest = await axios.create({
        baseURL: url,
        headers: {
            Connection: 'keep-alive',
            'Keep-Alive': 'timeout=1500, max=100'
        }
    });

答案如下:


我错过了内容类型标题和{ResponseType:'arraybuffer'}

这很不幸没有帮助,我刚刚注意到我的配置标题中有一些东西。看编辑为我做的把戏,没有它,我偶尔得到部分数据,谢谢!
   var axioRequest = await axios.create({
        baseURL: url,
        headers: {
            Connection: 'keep-alive',
            'Keep-Alive': 'timeout=1500, max=100'
        }
    });