我目前正在尝试从我正在使用针编写的node.js应用程序中调用远程应用程序接口。API要求我将所有请求都作为post请求。当我尝试打印控制台日志中的response.body时,唯一打印出来的是<Buffer >。
我的node.js代码如下:
var needle = require('needle');
var options = {
data: { "username": "**********", "password":"******************" },
headers: { "Accept":"application/json", "Accept-Encoding":"gzip,deflate", "Content-Type":"application/json" }
};
needle.post('http://www.linxup.com/ibis/rest/linxupmobile/map', options, function(err, resp, body) {
// you can pass params as a string or as an object.
console.log(body.toString());此外,我还尝试使用附加的.toString()方法打印resp、resp.body、body和前面提到的所有项。我只希望能够看到API POST调用返回的响应数据。
发布于 2017-08-11 03:43:04
问题是针为你的REST请求提供了创建头部的快捷方式。它们覆盖了我的头文件,并导致返回一个压缩的响应正文。我只是简单地删除了我的自定义头部,而使用了Needle的格式:
var options = {
compressed: true,
accept: 'application/json',
content_type: 'application/json'
};然后我将我的body移到一个单独的数组中:
var data = {
"username": "***********", "password":"*********"
}最后,我创建了请求:
needle.post('http://www.linxup.com/ibis/rest/linxupmobile/map', data, options, function(err, resp, body) {
...
}这样,我就可以毫无问题地访问响应体。
https://stackoverflow.com/questions/45602273
复制相似问题