【问题标题】:sending JSON object by needle通过针头发送 JSON 对象
【发布时间】:2014-10-05 23:23:34
【问题描述】:

我正在尝试将 JSON 对象发送到其他人提供的 URL。 这是服务端提供的文档:

我的程序 API:

端点:http://xxx.yyyy.com/yourCompany-service/rest/myProgram 这是一个公开的 REST 服务,您需要在其中发布包含以下详细信息的 JSON。 这是您可以发送到服务的 JSON 对象的示例: 示例请求 Json:

{
    "aa": "ertewer",
    "bb": 1,
    "cc": 10
}

现在我的代码:

var options = {
    host : 'http://xxx.yyyy.com/yourCompany-service/rest/myProgram',
    format : 'json',
    content_type: 'application/json'

} ;
var x = {
               "aa"       : "ABCD",
               "bb"        : 1,
               "cc"     : 10,
       }

needle.request('post', options.host, x, function(err, resp) {
           if (!err) {
               console.log(resp.body) ;
           }

           if (err) {
               console.log('neddle error');
           }
 }

但我总是从服务器收到以下消息:

服务器拒绝此请求,因为请求实体的格式不受请求的请求资源支持

【问题讨论】:

    标签: javascript json node.js sails.js


    【解决方案1】:

    你需要说你要发送 json 到请求方法。见options reference

    needle.request('post', options.host, x, {json:true}, function(err, resp) {
               if (!err) {
                   console.log(resp.body) ;
               }
    
               if (err) {
                   console.log('neddle error');
               }
     }
    

    【讨论】:

    • 模棱两可,Tomas 的 JSON needle.request 示例不使用 json:true;它在data 对象中使用format:"json"。 (github.com/tomas/…)。
    • 我使用了 format: "json" 和 json:true 。它们都不起作用。有人有任何使用 Node.js 的 HTTP 模块的解决方案吗?我记得这是可能的,但我目前在互联网上没有找到任何软件。
    • @CaseyFalk:该示例具有误导性,实际上是一个获取请求,其中格式参数仅用作查询参数,如下所示: ?format=json user3076730:在问题中,您不是完全使用格式:json。你只是指options.host。如果您手动执行请求(例如使用 CURL),服务器是否正确响应?
    • @JohnSterling: “这个例子有误导性” -- Right-o,因此是“模棱两可的”。此外,通过 GET 请求发送键值对是一种发送 JSON 对象的方式。只是为了放大 Docs 的不确定性。在弄清楚这一点之后,也许它需要一个拉取请求......
    • @CaseyFalk:是的,你是对的。对不起,我误会了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    • 2014-12-04
    • 2014-05-20
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    • 2013-02-27
    相关资源
    最近更新 更多