Nodejs-Request Promise从POST获取JSON响应主体

时间:2018-10-16 19:48:51

标签: node.js request-promise

我正在尝试使用request-promise向HTTP服务发出POST请求,该服务将返回JSON数据。我正在将resolveWithFullResponse设置为true,并将json选项设置为true。如果这有所作为,我还将使用gzip选项。

无论如何,我可以request-promise自动将响应数据转换为JSON吗?当前,响应主体为字符串。这是我的请求选项:

{
   url: 'http://foo.com/getData',
   json: true,
   body: {
      hello: world
   },
   resolveWithFullResponse: true,
   gzip: true
}

1 个答案:

答案 0 :(得分:1)

您应该使用请求模块的 transform 选项。在请求对象下方找到。

{
   url: 'http://foo.com/getData',
   json: true,
   body: {
      hello: world
   },
   resolveWithFullResponse: true,
   gzip: true,
   transform: function (body, response) {
                if (response.headers['content-type'] === 'application/json') {
                    response.body = JSON.parse(body);
                }
                return response;
            }
}