【发布时间】:2017-07-05 23:23:07
【问题描述】:
我正在尝试从 Node 应用程序调用我的 api 以获得发布 web 服务。 我使用 get 方法成功地从同一个 api 中提取了数据,因此 connexion 可以完美运行。 现在我想推一下
request({
method: 'POST',
url: ws.url,
json: {"id": 78, "product" : "MyProduct"}
}, function (error, response,body) {
console.log('error ',error);
console.log('body ',body);
console.log('response ',response);
cb(error, response)
//console.log(error, response)
})
我有这些 console.log :
error undefined
body undefined
response { errMsg: 'id not provided ' }
所以响应非常明确,API 还没有收到我的 id。 但是,当我使用 Postman 手动调用相同的 ws 时,它可以正常工作。
那么我的 json 参数有什么问题?我应该用另一种方式发送吗? 我的网络服务需要在其正文中包含此内容,而不是其他内容:
{"id": 78, "product" : "MyProduct"}
【问题讨论】:
-
你试过使用
JSON.stringify({id: 78, product : "MyProduct"})吗? -
@yvoytovych 是的,我试过了,通常 Request 应该对我的 json 本身进行字符串化,但我试图提供一个字符串化的 json 以及一个带有字符串化值而不是 json 的主体节点
-
也许尝试在您的帖子请求中包含
contentType: "application/json" -
@yvoytovych — “json - 将正文设置为 JSON 值的表示形式并添加 Content-type: application/json 标头。此外,将响应正文解析为 JSON。” — github.com/request/request
-
@NicolasD 确保您的 API 处理“application/json”格式的正文(不是 application/x-www-form-urlencoded)另外检查它是否从请求正文中获取 id 而不是从 url。
标签: javascript json node.js