【问题标题】:Requests with status 400 (Bad request) doesn't pipe the correct body状态为 400(错误请求)的请求未通过管道传输正确的正文
【发布时间】:2018-04-24 12:36:30
【问题描述】:

request 2.83.0 node 8.11 yarn 1.5.1 Operating System: Windows Server 2012 R2

我们正在使用请求来为我们的代理提供动力。它适用于所有请求,我们甚至可以传输大文件 (400MB),所有方法都有效等等。

我们像这样创建我们的选项对象:

let options = {
  method: req.method,
  url: url,
  headers: proxyHelper.getHeaders(req.headers)
};
// The auth header needed to make the request
options.headers['Authorization'] = `Bearer ${token}`;

然后发送给请求。

request(options, (err, responseFromApi, body) => {
      logger.log("Body from API")
      logger.log(body)
  }).pipe(res);

该问题发生在正文中返回“错误请求”的请求(状态代码 400)上。 记录器记录正确的正文,但将错误的正文通过管道传输到客户端。客户端只接收

“错误请求”。而不是包含错误原因的完整 JSON 对象。

我们使用 iisnode(IIS 插件)来运行 Node。当我们运行 iisnode 时,它​​在本地工作,但是当我们部署它时,它不起作用。

有什么想法吗?是要求吗?是管道吗?是iisnode吗?

【问题讨论】:

    标签: node.js iisnode requestjs


    【解决方案1】:

    经过大量的努力和研究并分解了整个节点应用程序,最终是 IIS 拿走了 body 并将其内容替换为 statusText...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-07
      • 1970-01-01
      • 2020-10-21
      • 1970-01-01
      • 2019-09-13
      • 2017-09-07
      • 2015-04-01
      • 1970-01-01
      相关资源
      最近更新 更多