【问题标题】:NodeJS json provided in request is not sent with push请求中提供的 NodeJS json 不会随推送一起发送
【发布时间】: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


【解决方案1】:

我发现了我的问题,实际上我正在工作的项目扩展了 Request 库,问题在于覆盖 Request 原始行为的方法。 总而言之,我上面的代码应该可以工作,我只需要修复这个脏覆盖。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    • 2012-11-28
    • 1970-01-01
    • 2017-10-19
    • 1970-01-01
    • 2020-04-28
    • 1970-01-01
    相关资源
    最近更新 更多