首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node JS Needle Post响应正文作为缓冲区返回

Node JS Needle Post响应正文作为缓冲区返回
EN

Stack Overflow用户
提问于 2017-08-10 07:44:56
回答 1查看 2.2K关注 0票数 0

我目前正在尝试从我正在使用针编写的node.js应用程序中调用远程应用程序接口。API要求我将所有请求都作为post请求。当我尝试打印控制台日志中的response.body时,唯一打印出来的是<Buffer >

我的node.js代码如下:

代码语言:javascript
复制
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调用返回的响应数据。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-11 03:43:04

问题是针为你的REST请求提供了创建头部的快捷方式。它们覆盖了我的头文件,并导致返回一个压缩的响应正文。我只是简单地删除了我的自定义头部,而使用了Needle的格式:

代码语言:javascript
复制
var options = {
    compressed: true,
    accept: 'application/json',
    content_type: 'application/json'
};

然后我将我的body移到一个单独的数组中:

代码语言:javascript
复制
var data = {
  "username": "***********", "password":"*********"
}

最后,我创建了请求:

代码语言:javascript
复制
needle.post('http://www.linxup.com/ibis/rest/linxupmobile/map', data, options, function(err, resp, body) {
...
}

这样,我就可以毫无问题地访问响应体。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45602273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档