【问题标题】:Resend body from response exactly as it comes准确地从响应中重新发送正文
【发布时间】:2017-06-12 22:07:20
【问题描述】:

我正在使用第 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 }));

我需要发送与响应中完全相同的正文。我该怎么做?

谢谢

【问题讨论】:

  • 格式化代码指出缺少的结束`,你应该检查你的代码中是否也缺少它,如果没有在问题中修复它。
  • 已修复问题;原始代码很好,谢谢。

标签: javascript http


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2019-09-27
    • 1970-01-01
    • 2017-05-29
    • 2018-07-07
    • 2014-05-19
    • 1970-01-01
    • 2015-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多