2017-08-09 48 views
0

我目前正在尝试从我使用针编写的node.js应用程序调用远程API。该API要求我将所有请求作为发布请求。当我尝试打印出控制台日志中的response.body时,唯一打印的内容是<Buffer >节点JS针后响应体返回缓冲区

我的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()); 

此外,我曾尝试打印RESP,resp.body,身体和所有附接有的ToString()方法在上述物品。我只想看到从API POST调用返回的响应数据。

回答

0

问题是,针提供快捷方式为您的REST请求创建标头。这些重写了我的标题并导致返回一个压缩的响应主体。我简单地删除我的自定义首部和使用过的针头的格式代替:

var options = { 
    compressed: true, 
    accept: 'application/json', 
    content_type: 'application/json' 
}; 

我然后移动自己的身体,以一个单独的数组:

var data = { 
    "username": "***********", "password":"*********" 
} 

最后,我创建请求:

needle.post('http://www.linxup.com/ibis/rest/linxupmobile/map', data, options, function(err, resp, body) { 
... 
} 

此然后让我访问响应正文没有问题。