【问题标题】:Node JS POST method with authorization具有授权的节点 JS POST 方法
【发布时间】:2011-04-05 04:25:13
【问题描述】:

我在文档中找不到关于如何执行此操作的任何内容。

http://nodejs.org/api.html#request-method-149

我需要在 ruby​​ 中使用与此类似的授权来制作 Node js POST:

url = URI.parse('http://www.example.com/todo.cgi')
    req = Net::HTTP::Post.new(url.path)
    req.basic_auth 'jack', 'pass'

我试图从本质上做到这一点:

var client = http.createClient(80, 'http://api.foo.com');
  var rq = client.request('POST', '/path/', 
  {
    'authorization' : [account, password]
    'key': value,
    etc....
  }

【问题讨论】:

  • 哇,观看次数超过 1000 次,从未投票过 ;)

标签: api httpclient node.js


【解决方案1】:

只需使用Buffer 在base64 中对字符串account:password 进行编码,并将其设置为带有键Authorization 的标题,并以单词Basic 为前缀。

【讨论】:

    【解决方案2】:

    这是我们更无知的一个例子(可以改进!)。适用于 twitter 的流 API。像往常一样在发出请求时监听响应,然后监听数据。

    var hackClient = http.createClient(80, 'stream.twitter.com');
    var request = hackClient.request("GET", '/1/statuses/filter.json?'+querystring.stringify(params),{
        "Host":"stream.twitter.com",
        "Authorization":"Basic " + new Buffer('user' + ":" + 'pass').toString('base64'),
        "User-Agent": "Twitter-Node"
    });
    request.on('response', function(response) {
        response.on('data', function(chunk) {
            stream.receive(chunk); //example usage, no stream object in this example exists
        });
        response.on('error', function(error) {
            stream.emit('error', error); //again, for example
        });
        response.on('end', function () {
            stream.emit('end');
        });
    });
    request.on('error', function(error) {
        stream.emit('error', error);
    });
    

    【讨论】:

      猜你喜欢
      • 2022-12-10
      • 2018-05-04
      • 2023-02-06
      • 2021-08-29
      • 2021-05-04
      • 1970-01-01
      • 2017-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多