【问题标题】:Calling a web service using nodejs使用 nodejs 调用 Web 服务
【发布时间】:2013-10-23 22:30:02
【问题描述】:

我对 Node.js 还是很陌生。我正在试验如何使用 NodeJS 调用服务。如果能指出与以下代码等效的 NodeJS 将会很有帮助:

$.ajax({
  type: "POST",
  url: "/WebServiceUtility.aspx/CustomOrderService",
  data: "{'id': '2'}",
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  success: function (message) {
    ShowPopup(message);
  }
});

任何有用的链接将不胜感激。

【问题讨论】:

    标签: javascript node.js http


    【解决方案1】:

    与该代码等效的 Node.js 可以使用 jQuery 服务器端、使用其他模块或使用本机 HTTP/HTTPS 模块。这是 POST 请求的完成方式:

    var http = require('http');
    var data = JSON.stringify({
      'id': '2'
    });
    
    var options = {
      host: 'host.com',
      port: '80',
      path: '/WebServiceUtility.aspx/CustomOrderService',
      method: 'POST',
      headers: {
        'Content-Type': 'application/json; charset=utf-8',
        'Content-Length': data.length
      }
    };
    
    var req = http.request(options, function(res) {
      var msg = '';
    
      res.setEncoding('utf8');
      res.on('data', function(chunk) {
        msg += chunk;
      });
      res.on('end', function() {
        console.log(JSON.parse(msg));
      });
    });
    
    req.write(data);
    req.end();
    

    此示例创建数据负载,即 JSON。然后它设置 HTTP 发布选项,例如主机、端口、路径、标头等。然后设置请求本身,我们收集响应以进行解析。然后我们将 POST 数据写入请求本身,并结束请求。

    【讨论】:

      【解决方案2】:

      目前最简单的方法是使用Request module。请参阅该页面以获取大量示例,展示如何做您想做的事情。

      如果您想使用原始 node.js,您需要使用 httphttps 内置模块,但您必须自己处理大量编码和流式传输细节。另外,请务必特别查看文档的客户端部分,而不是服务器部分。

      【讨论】:

        【解决方案3】:
        //--------- Tracking request service                  
        factory.trackRequest = function (payload) {
            return $http({
                method: 'POST',
                **url: 'https://uat-userauthentication.bdt.kpit.com/'+ 
         'employee/trackRequestStatus'**,
                data: payload
            });
         };
        
         return factory;
        

        我通过 UI 路由以角度调用节点 js 服务,并在控制器中使用了 trackRequest 函数。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-04-09
          • 2016-06-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-10
          相关资源
          最近更新 更多