帮酷LOGO
0 0 评论
  • 显示原文与译文双语对照的内容
文章标签:PUSH  INT  acc  FREE  
sigh.

  • 源代码名称:node-scoped-http-client
  • 源代码网址:http://www.github.com/technoweenie/node-scoped-http-client
  • node-scoped-http-client源代码文档
  • node-scoped-http-client源代码下载
  • Git URL:
    git://www.github.com/technoweenie/node-scoped-http-client.git
  • Git Clone代码到本地:
    git clone http://www.github.com/technoweenie/node-scoped-http-client
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/technoweenie/node-scoped-http-client
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • 的作用域HTTP客户机用于

    客户端的HTTP HTTP非常好,但对于通用目的来说,它的级别太低。 对于某些库来说,通常的做法是解决这个问题,因这里使用它有点好。

    function(method, path, customHeaders, body, callback) {
     var client =http.createClient(url)
     client.request(method, path, headers)
     //.. .}

    我痛恨带有许多可选参数的函数。 让我们把它变成:

    var scopedClient =require('./lib')
    , util =require('util')var client =scopedClient.create('https://api.github.com')
    . header('accept', 'application/json')
    . path('user/show/technoweenie')
    . get()(function(err, resp, body) {
     util.puts(body)
     })

    可以在不影响主客户端实例的情况下,使用特定的参数范围对客户端进行请求:

    client.path('https://api.github.com') // reset pathclient.scope('users/technoweenie', function(cli) {
     // cli's path is"https://api.github.com/users/technoweenie"cli.get()(function(err, resp, body) {
     util.puts(body)
     })
    })// client's path is back to just"https://api.github.com"

    你可以使用 .post().put().del().head()

    client.query({login:'technoweenie',token:'...'})
    . scope('users/technoweenie', function(cli) {
     var data =JSON.stringify({location:'SF'})
     // posting data!cli.post(data)(function(err, resp, body) {
     util.puts(body)
     })
     })

    有时你希望将请求主体流到服务器。 请求是标准的http.clientRequest

    client.post(function (req) {
     req.write("...")
     req.write("...")
    })(function(err, resp, body) {
     //.. .})

    而其他时候,你希望从服务器流出响应。 只需自己侦听请求事件的响应,并忽略响应回调。

    client.get(function (err, req) {
     // do your own thingreq.addListener('response', function (resp) {
     resp.addListener('data', function (chunk) {
     util.puts("CHUNK: "+ chunk)
     })
     })
    })()

    支持基本的HTTP身份验证:

    client.get(function (err, req) {
     // we'll keep this conversation secret...req.auth('technoweenie', '...')
    })

    添加简单超时支持:

    client = ScopedClient.create('http://10.255.255.1:9999');
    client.timeout(100);
    client.get()(function(err, resp, body) {
     if (err) {
     util.puts("ERROR:" + err);
     }
    });

    插件开发

    在主目录中运行这里命令,在你执行操作时将coffeescript编译为 javascript:

    $ coffee -wc -o lib --no-wrap src/**/*.coffee

    版权

    版权所有( c ) 2014 rick请参阅许可证的详细信息。



    文章标签:INT  acc  FREE  PUSH  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语