gpt4 book ai didi

javascript - 从 api 响应中获取 pdf 文件

转载 作者:行者123 更新时间:2023-12-04 01:10:57 24 4
gpt4 key购买 nike

我正在调用 api 并获得 pdf 作为返回。

fetch(`api` + guid, {
method: "GET",
headers: {
"Accept": "application/octet-stream",
"Authorization": "Bearer " + token,
},
responseType: 'arraybuffer',
})
.then((res) => res.text())
.then((data) => {
fs.writeFileSync('file.pdf', data);
});
我得到了 pdf 文件,但问题是 pdf 文件总是空的。但是当我接受响应为 json 时,它工作正常。
我发现了类似的问题,但没有一个解决方案对我有用。
如果有人能指出这个问题,那就太好了。

最佳答案

我发现了这个问题。
因为我使用的是 fetch 而不是 Axios。
我们不能将 responseType 作为 Fetch 的选项传递。

fetch(`api` + guid, {
method: "GET",
headers: {
"Accept": "application/octet-stream",
"Authorization": "Bearer " + token,
},
// responseType: 'arraybuffer' //#1 remove this,
})
相反,响应本身可以作为数组缓冲区传递,如下所示。
.then((res) => res.arraybuffer())
代替
.then((res) => res.text())
现在代替直接使用响应来编写我们的 pdf 文件。我们可以将数据更改为 base64 字符串并再次解码以创建我们的 pdf 文件。我用了 base64ToPdf npm 包来处理它。
.then(data => {
var base64Str = Buffer.from(data).toString('base64');
base64.base64Decode(base64Str, "file.pdf");
})
我希望这对其他人有帮助。 :)

关于javascript - 从 api 响应中获取 pdf 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64859031/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com