Commits on Apr 8, 2011
  1. Version bump to 2.2.0.

    committed Apr 8, 2011
  2. Update method usage examples.

    committed Apr 8, 2011
  3. Add res.headers method which returns a Hash of headers.

    Hash key and value are both String. Each key has a single value so you
    can't extract exact value when a message has multiple headers like
    'Set-Cookie'. Use header['Set-Cookie'] for that purpose.
    (It returns an Array always)
    committed Apr 8, 2011
  4. Add res.cookies method.

    It returns parsed cookie in response header. It's different from
    client.cookie_manager.cookies. manager keeps persistent cookies in it.
    committed Apr 8, 2011
  5. Handle argument Hash at new method: argument_to_hash

    It converts array style arguments to defined Hash.
    committed Apr 8, 2011
Commits on Apr 7, 2011
  1. Do not invoke scheduler thread when it won't be used.

    For 1.9 & JRuby.
    committed Apr 7, 2011
Commits on Apr 6, 2011
  1. Load CA certs lazily.

     * call load_cacerts lazily. new method SSLConfig#load_cacerts loads
       bundled CA certs as trust anchors.
     * rename: set_trust_ca -> add_trust_ca to fit the actual behavior.
    committed Apr 6, 2011
Commits on Apr 5, 2011
  1. Avoid unused variable warning of testcase.

    Let GC collects a keep-alive server thread.
    committed Apr 5, 2011
Commits on Apr 4, 2011
  1. Reenable keep-alive for chunked response.

    This feature was disabled by c206b68 at
    2008-12-09. I should have written a test for keep-alive. Now I added it.
    Thanks Takahiro Nishimura(@dr_taka_n) for finding this bug.
    committed Apr 4, 2011
  2. Allow keyword style argument for HTTPClient#get, post, etc.

    Introduced keywords are: :body, :query, and :header.
    You can write
      HTTPClient.get(uri, :header => {'X-custom' => '1'})
    instead of;
      HTTPClient.get(uri, nil, {'X-custom' => '1'})
    committed Apr 4, 2011
Commits on Apr 3, 2011
  1. Add shortcut methods.

     - Add HTTPClient#cookies as an alias of #cookie_manager.cookies.
     - Rename HTTPClient::HTTP::Message#header to #http_header, then add
       #header as an alias of #http_header. It's just an implementation change.
     - [INCOMPAT] Rename HTTPClient::HTTP::Message#body to #http_body, then
       add #body as an alias of #content. It's incompatible change but other
       Ruby http clients use 'body' to get a String so I made this change.
       Users who are using req.body and/or res.body should follow this
       change. (req.http_body and res.http_body)
    committed Apr 3, 2011
Commits on Mar 23, 2011
  1. Version bump to

    committed Mar 23, 2011
  2. Use @socket_local iif user specified it.

    Some environment might not handle ''.
    committed Mar 23, 2011
Commits on Mar 22, 2011
  1. Version bump to

    committed Mar 22, 2011
  2. don't specify domain in NTLM Type1 message if not supplied

    mccraig mccraig of the clan mccraig committed Mar 22, 2011
  3. Version bump to 2.1.7

    Updated README.txt, too.
    committed Mar 22, 2011
  4. NTLM logon to exchange Web Services

    Merged the core part of this commit:
    Auth#debug_dev= looks good but I skip it this time to minimize the
    committed Mar 22, 2011
  5. Merge commit 'aa85d60a02aceefd7f04'

    committed Mar 22, 2011
  6. rescue IOError for rather old JRuby versions.

    At least jruby 1.5.1 could raise IOError per user's report.
    close #25.
    committed Mar 22, 2011
  7. Recover authentication features for OAuth and Negotiate.

    Auth#set? introduced at e3da687 broke OAuth and Negotiate.
    These authenticators must be checked against URI given so we cannot skip
    these in response_filter.
    committed Mar 22, 2011
Commits on Mar 12, 2011
  1. Add HTTPOnly cookie support

    Nick Brosnahan committed Mar 12, 2011
Commits on Feb 20, 2011
  1. use *args for set that doesn't need args

    We don't actually *use* the arguments on these methods... so allow us to
    call them without many args if we don't realy need to.
    This lets us use it as:
    instead of insisting on three useless arguments.
    taryneast committed Feb 20, 2011
  2. Checks only authenticators that are set

    We want the ability to only set certain kinds of authenticators if we
    already know what they will accept.
    1) We know that one of our remote systems *anly* accepts BasicAuth
    2) We have limited, expensive bandwidth and our messages always contain a
    large attachment
    3) If we use the standard HttpClient, which goes through the whole gamut of
    authenticators... it will continually send this large attachment multiple
    times... using authenticators that we *already know* will be refused, thus
    wasting our bandwidth and time.
    Therefore, we want to restrict the authenticator set to only the known
    authenticators... when we *already know* the authentication schemes that the
    remote system accepts.
    The way I'e done this is quite simple - and the ddefault behaviour of the
    system will remain the same.
    When you "set" the authenticator, it marks it as usable.
    If you use the default "set_auth" method - it will mark all authenticators
    as usable, just as it curently does.
    *but* if you already know the authentication method... then only set the
    methods you will use...
    For example, if you know that it will only accept basic auth, and negotiate
    auth, use:
    @client =
    More-complicated authenticators may require other params, or even no params
    eg the following doesn't actually *need* the given params...
    This change frees us up to use the nice fallback negotiation if we need it,
    but does not force us to go through the waterfall process if it's *not*
    Having options is a Good Thing.
    taryneast committed Feb 20, 2011
Commits on Feb 18, 2011
  1. Ignore *.rbc for Rubinius.

    committed Feb 18, 2011
  2. Rename 'local_bind' to 'socket_local'

    Add simple test.
    committed Feb 18, 2011