Node.js Nodejs请求承诺从POST获取JSON响应体

Node.js Nodejs请求承诺从POST获取JSON响应体,node.js,request-promise,Node.js,Request Promise,我试图使用request promise向返回JSON数据的HTTP服务发出POST请求。我正在使用resolveWithFullResponse设置为true,并将json选项设置为true。如果有区别的话,我还使用了gzip选项 我是否可以让请求承诺自动将响应数据转换为JSON?目前,响应主体是一个字符串。以下是我的请求选项的外观: { url: 'http://foo.com/getData', json: true, body: { hello: world

我试图使用
request promise
向返回JSON数据的HTTP服务发出POST请求。我正在使用
resolveWithFullResponse
设置为true,并将
json
选项设置为true。如果有区别的话,我还使用了
gzip
选项

我是否可以让
请求承诺
自动将响应数据转换为JSON?目前,响应主体是一个字符串。以下是我的请求选项的外观:

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

您应该使用请求模块的转换选项。在请求对象下面查找

{
   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;
            }
}

您应该使用请求模块的转换选项。在请求对象下面查找

{
   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;
            }
}

如果API在body.data中返回字符串,则无法在json响应中转换,您可以使用json.parse()收集响应并将其转换为json。我看到的情况与GET请求中发生的情况类似,在GET请求中,
json:true
选项会自动解析JSONI如果API在body.data中返回字符串,那么就不可能在json响应中进行转换,您可以使用json.parse()收集响应并将其转换为json。我看到的情况与GET请求中发生的情况类似,在GET请求中,
json:true
选项会自动解析json