我正在使用第 3 方 API Rest,它返回正文中的文件内容。此文件可以是文本或二进制文件(pdf、docx)。
出于安全原因,我需要使用一个中间 API Rest 作为我的前端应用程序和这个第 3 方 API Rest 之间的桥梁。
我想要的是能够将从第 3 方获得的完全相同的主体返回到我的前端应用程序,因为此刻当我获得主体并在我的中间 API 中构建新响应时,我不知何故修改一些东西。
这是我在中间 API 中所做的:
const options = {
method: 'GET',
uri: `${api}`,
headers: { OTCSTICKET: ticket}
}
rp(options)
.then(parsedBody => res.status(201).send(parsedBody))
.catch(err => res.status(400).send({ msg: 'download error', err }));
我需要发送与我在响应中得到的完全相同的正文。我该怎么做?
谢谢
最佳答案
好的,我设法让它工作了,所以我会在这里发帖,以防它对某人有帮助。
这个线程给了我解决方案 Getting binary content in Node.js using request
所以我只是将编码设置为 null,并将我从第 3 方 API 获得的编码作为正文传递
const options = {
method: 'GET',
uri: `${api}`,
headers: { OTCSTICKET: ticket},
encoding: null,
resolveWithFullResponse: true
}
rp(options)
.then(response => res.status(201).send(response.body))
.catch(err => res.status(400).send({ msg: 'download error', err }));
有了这个,我设法让它工作。
关于javascript - 完全按原样从响应中重新发送正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44500590/