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