完全按照响应重新发送正文

时间:2017-06-12 13:22:59

标签: javascript http

我正在使用第三方API Rest,它会返回正文中文件的内容。该文件可以是文本或二进制文件(pdf,docx)。

出于安全考虑,我需要使用中间API Rest作为我的前端应用和第三方API Rest之间的桥梁。

我想要的是能够将我从第三方获得的完全相同的身体返回到我的前端应用程序,因为此时我得到身体并在我的中间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 }));

我需要发送与响应完全相同的主体。我怎么能这样做?

由于

1 个答案:

答案 0 :(得分:0)

好的,我设法让这个工作,所以我会发布在这里,以防它帮助某人。

这个帖子给了我解决方案 Getting binary content in Node.js using request

所以我只是将编码设置为null,然后我将第三方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 }));

有了这个,我设法让这个工作。