Httpclient/2.1.6

Hi all,

httpclient/2.1.6 has been released.

This release includes IMPORTANT update for HTTPS(SSL) connection.
Trusted CA bundle file cacert_sha1.p7s for older environment (where
you cannot use SHA512 algorithm such as an old Mac OS X) included in
httpclient 2.1.5 expires in Dec 31, 2010. Please update to 2.1.6 if
you’re on such an environment.

It also includes new features and bug fixes. See the last of this
mail for more detail.

== What’s this?

httpclient - HTTP accessing library.
Copyright (C) 2000-2010 NAKAMURA, Hiroshi [email protected].

‘httpclient’ gives something like the functionality of libwww-perl (LWP)
in
Ruby. ‘httpclient’ formerly known as ‘http-access2’.

== Features

  • methods like GET/HEAD/POST/* via HTTP/1.1.

  • HTTPS(SSL), Cookies, proxy, authentication(Digest, NTLM, Basic), etc.

  • asynchronous HTTP request, streaming HTTP request.

  • by contrast with net/http in standard distribution;

    • Cookies support
    • MT-safe
    • streaming POST (POST with File/IO)
    • Digest auth
    • Negotiate/NTLM auth for WWW-Authenticate (requires net/htlm
      module; rubyntlm gem)
    • NTLM auth for Proxy-Authenticate (requires ‘win32/sspi’ module;
      rubysspi gem)
    • extensible with filter interface
    • you don’t have to care HTTP/1.1 persistent connection
      (httpclient cares instead of you)
  • Not supported now

    • Cache
    • Rather advanced HTTP/1.1 usage such as Range, deflate, etc.
      (of course you can set it in header by yourself)

== Author

Name:: NAKAMURA, Hiroshi
E-mail:: [email protected]
Project web site:: http://github.com/nahi/httpclient

== License

This program is copyrighted free software by NAKAMURA, Hiroshi. You can
redistribute it and/or modify it under the same terms of Ruby’s license;
either the dual license version in 2003, or any later version.

httpclient/session.rb is based on http-access.rb in http-access/0.0.4.
Some part of code in http-access.rb was recycled in http-access2.rb.
Those part is copyrighted by Maehashi-san who made and distributed
http-access/0.0.4. Many thanks to Maehashi-san.

== API Document

http://dev.ctor.org/doc/httpclient/

== Changes in 2.1.6

* IMPORTANT update for HTTPS(SSL) connection
  * Trusted CA bundle file cacert_sha1.p7s for older environment 

(where
you cannot use SHA512 algorithm such as an old Mac OS X)
included in
httpclient 2.1.5 expires in Dec 31, 2010. Please update to
2.1.6 if
you’re on such an environment.
* Updated trusted CA certificates file (cacert.p7s and
cacert_sha1.p7s).
CA certs are imported from
‘Java™ SE Runtime Environment (build 1.6.0_22-b04)’.

* IMPORTANT bug fix for persistent connection
  * #29 Resource Leak: If httpclient establishes two connections to 

the
same server in parallel, one of these connections will be
leaked, patch
by xb.
* #30 When retrying a failed persistent connection, httpclient
should use
a fresh connection, reported by xb.
These 2 fixes should fix ‘Too many open files’ error as well if
you’re
getting this. Please check 2.1.6 and let me know how it goes!

* Features
  * #4 Added OAuthClient. See sample clients in sample/ dir.
  * #42 Added transparent_gzip_decompression property, patch by 

Teshootub7.
All you need to use it is done by;
client.transparent_gzip_decompression = true
Then you can retrieve a document as usural in decompressed
format.
* #38 Debug dump binary data (checking it includes \0 or not) in
hex
encoded format, patch by chetan.

* Bug fixes
  * #8 Opened certificate and key files for SSL not closed properly.
  * #10 "get" method gets blocked in "readpartial" when receiving a 

304
with no Content-Length.
* #11 Possible data corruption problem in asynchronous methods,
patch by
a user. (http://dev.ctor.org/http-access2/ticket/228)
* #13 illegal Cookie PATH handling. When no PATH part given in
Set-Cookie
header, URL’s path part should be used for path variable.
* #16 httpclient doesn’t support multiline server headers.
* #19 set_request_header clobbers ‘Host’ header setting if given,
patch
by meuserj.
* #20 Relative Location on https redirect fails, patch by
zenchild.
* #22 IIS/6 + MicrosoftSharePointTeamServices uses “NTLM” instead
of
“Negotiate”.
* #27 DigestAuth header: ‘qop’ parameter must not be enclosed
between
double quotation, patch by ibc.
* #36 Wrong HTTP version in headers with Qt4 applications,
reported by
gauleng.
* #38 DigestAuth + posting IO fails, patch by chetan.
* #41 https-over-proxy fails with IIS, patch by tai.

Regards,
// NaHi