【问题标题】:How to HTTP get request with parameters in node.js?如何使用 node.js 中的参数 HTTP 获取请求?
【发布时间】:2013-05-20 12:23:42
【问题描述】:

我正在使用 NODE.js 我正在使用“请求”模块:

有效:

var request = require('request');
request('http://www.site.com', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body);
  }
});

当我尝试包含参数时它会崩溃!

var request = require('request');
request('http://www.site.com/index.php?action=y9sadf98yh', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body);
  }
});

Error: undefined is not a valid uri or options object.
    at request (/node_modules/request/index.js:1217:41)
    at Request._callback (nodeCloseSession/index.js:60:5)
    at Request.self.callback (/node_modules/request/index.js:148:22)
    at Request.EventEmitter.emit (events.js:98:17)
    at Request.<anonymous> (/node_modules/request/index.js:876:14)
    at Request.EventEmitter.emit (events.js:117:20)
    at IncomingMessage.<anonymous> (/node_modules/request/index.js:827:12)
    at IncomingMessage.EventEmitter.emit (events.js:117:20)
    at _stream_readable.js:883:14
    at process._tickCallback (node.js:415:13)

如何在 NODE.js 'request' 模块中使用参数?

【问题讨论】:

  • 你能发布崩溃回溯吗?
  • 我认为您的真实代码中存在错误,但是当您尝试将其简化以在此处发布时,您避免了它。无论您在真实代码中传递给request() 的内容都是undefined。发布的示例对我来说很好。

标签: javascript node.js url parameters request


【解决方案1】:
request('/www.site.com/', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body);
  }
});

使用 userAgent 获取您的参数值

【讨论】:

    【解决方案2】:

    您可以尝试使用Requestify 作为替代,这是一个用于nodeJS 的小型且非常简单的HTTP 客户端+它支持缓存..

    要执行您的请求,请执行以下操作:

    var requestify = require('requestify');
    
    requestify.get('http://www.site.com/index.php?action=y9sadf98yh')
      .then(function(response) {
          // Get the response body (JSON parsed or jQuery object for XMLs)
          response.getBody();
      }
    );
    

    或:

    var requestify = require('requestify');
    
    requestify.get('http://www.site.com/index.php', { 
        params: {
          action: 'y9sadf98yh'
        }
    })
      .then(function(response) {
          // Get the response body (JSON parsed or jQuery object for XMLs)
          response.getBody();
      }
    );
    

    【讨论】:

      猜你喜欢
      • 2013-10-02
      • 2013-11-01
      • 2019-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-01
      • 2013-02-08
      相关资源
      最近更新 更多