远程HTTP获取JSON数据

时间:2014-08-08 01:45:41

标签: node.js sails.js

我的客户使用npm请求模块将数据从一个网站发布到我的网站。

即如下。

       testservice : function(req , res){

       var data = { title : 'my title' , content : 'my content'};

       request.post('https://dev.example.com/test' , data , function(err , response ,body){

        if (err) console.log(err);
        if(response) console.log('statuscode='+response.statuscode);

       });
       };

我尝试使用请求获取方法从我的客户端站点发布到我的站点的JSON数据,但我没有得到json数据输出。

请帮助我获取使用请求发布方法发布的JSON数据。感谢。

2 个答案:

答案 0 :(得分:1)

试试这个:

testservice: function(req, res) {
  var data = { title: 'my title', content: 'my content' },
      options = {
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify(data)
      };

  request.post('https://dev.example.com/test', options, function(err, response, body) {
    if (err) console.log(err);
    if (response) console.log('statuscode=' + response.statuscode);
  });
};

答案 1 :(得分:0)

  

我尝试使用请求获取方法从我的客户端站点将JSON数据发布到我的站点,但我没有得到json数据输出。

我相信你可能会误解request.get函数。它不会“获取”发布到您网站的数据,它实际上会向特定网址发出“获取”请求。

如果您想要在您的站点上接收POST的数据,那么您需要配置服务器以侦听来自您的朋友站点的POST请求,然后从该请求的正文中解析发布的数据。

即。在您的服务器代码中,如果您使用的是raw node.js

http.createServer(function(req,res){
    if(req.method.toUpperCase() === "POST"){
        //code to parse out the data from the post request
    }
}).listen(8080)

有关解析POST数据的更多详细信息,请参阅How do you extract POST data in Node.js?

如果有帮助,请告诉我,如果没有,请澄清您的问题。