我正在尝试使用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
}
答案 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;
}
}