[[TOC]] = httpclient = Home: http://github.com/nahi/httpclient 'httpclient' gives something like the functionality of libwww-perl (LWP) in [http://www.ruby-lang.org Ruby]. 'httpclient' formerly known as 'http-access2'. * Project name: httpclient * Version: 2.1.5.2 * Author: NAKAMURA, Hiroshi a.k.a. NaHi * License: [http://www.ruby-lang.org/en/LICENSE.txt Ruby's] * RAA: http://raa.ruby-lang.org/project/httpclient/ 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) * NTLM auth for WWW-Authenticate/Proxy-Authenticate (requires win32/sspi module) * 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) For more detail, see API document at http://dev.ctor.org/doc/httpclient/ == News == === 2010-04-01: Move to github === Development repository is at http://github.com/nahi/httpclient now. Please use issue tracker at http://github.com/nahi/httpclient/issues instead of http://dev.ctor.org/http-access2/report Remaining tickets at http://dev.ctor.org/http-access2/report will be migrated little by little. === 2009-11-02: Ruby httpclient now on github: http://github.com/nahi/httpclient === * Sources: http://github.com/nahi/httpclient * Issues: http://github.com/nahi/httpclient/issues === 2009-09-11: SSL config cert expiration in httpclientt/2.1.4 === Bundled CA cert setting is expired in 2009-09-10. You should upgrade to 2.1.5.2 but in the case you cannot do that; 1. get cacert.p7s ~~or cacert_sha1.p7s (for older OpenSSL which is included in some MacOS)~~(not related. signature is not verified in this workaround) from httpclient/2.1.5.2 package. (CAUTION: you need to get the package securely) 2. locate it as a file at somewhere in your application. 3. load the file and set it in HTTPClient instance. {{{ client = HTTPClient.new client.ssl_config.set_trust_ca('lib/httpclient/cacert.p7s') # use client as before }}} Hope this helps. === 2009-06-25: httpclient/2.1.5.2 === Sorry for frequent releases. With OpenSSL/0.9.7, httpclient could not load CA bundle file because of non-SHA1 signing certificate (sha512WithRSAEncryption). For this release I added another cacert distribution certificate which uses sha1WithRSAEncryption. OpenSSL/0.9.7 cannot handle non-SHA1 digest algorithm for certificate. The new certificate is RSA 2048 bit + SHA1 + notAfter:2010/12/31. Corresponding CA bundle file is cacert_sha1.p7s. It is loaded only when cacert.p7s cannot be loaded with the original distribution certificate. see #221. Users using httpclient/2.1.5 or 2.1.5.1 + SSL with OpenSSL/0.9.7 (MacOS) should upgrade. -> OldNews == API Document == http://dev.ctor.org/doc/httpclient/ == Download == * Stable: http://dev.ctor.org/download/httpclient-2.1.5.2.tar.gz (tar + gzip) * Stable: http://dev.ctor.org/download/httpclient-2.1.5.2.zip (ZIP) * Older versions: http://dev.ctor.org/download/archive/ * Gem repository for stable version * (at default remove source at rubyforge.org) * Gem repository for development version * http://dev.ctor.org/download/ * git repo: http://github.com/nahi/httpclient === Gem === You can install httpclient with rubygems. {{{ % gem install httpclient --source http://dev.ctor.org/download/ }}} == Bug report or Feature request == Please file a ticket. 1. find a similar ticket from http://github.com/nahi/httpclient/issues 2. create a new ticket from http://github.com/nahi/httpclient/issues -> [Create Issue] Thanks in advance. == Changes == version 2.1.5 * wiki:Changes-215 version 2.1.4 * wiki:Changes-214 version 2.1.3 * wiki:Changes-213 version 2.1.2 * wiki:Changes-212 version 2.1.1 * wiki:Changes-211 version 2.1.0 * wiki:Changes-210 version 2.0.9 (as http-access2) * wiki:Changes-209 version 2.0.8 (as http-access2) * wiki:Changes-208 version 2.0.7 (as http-access2) * wiki:Changes-207 version 2.0.6 (as http-access2) * wiki:Changes-206 version 2.0.5 (as http-access2) * Connect/Send/Receive timeout cannot be configured. fixed. * IPSocket#addr caused SocketError? on Mac OS X 10.3.6 + ruby-1.8.1 GA. fixed. * There is a server which does not like 'foo.bar.com:80' style Host header. The server for http://rubyforge.org/export/rss_sfnews.php seems to dislike HTTP/1.1 Host header "Host: rubyforge.net:80". It returns HTTP 302: Found and redirects to the page again, causes HTTPAccess2::Client to raise "retry count exceeded". Keat found that the server likes "Host: rubyforge.net" (not with port number). version 2.0.4 (as http-access2) * add Client#redirect_uri_callback interface. * refactorings and bug fixes found during negative test. * add SSL test. version 2.0.3 (as http-access2) * no_proxy was broken in 2.0.2. * do not dump 'Host' header under protocol_version == 'HTTP/1.0' version 2.0.2 (as http-access2) * do not trust HTTP_PROXY environment variable. set proxy server manually. http://ftp.ics.uci.edu/pub/websoft/libwww-perl/archive/2001h1/0072.html http://ftp.ics.uci.edu/pub/websoft/libwww-perl/archive/2001h1/0241.html http://curl.haxx.se/mail/archive-2001-12/0034.html * follow ossl2 change. version 2.0.1 (as http-access2) * Query was not escaped when query was given as an Array or a Hash. Fixed. * Do not use http_proxy defined by ENV['http_proxy'] or ENV['HTTP_PROXY'] if the destination host is 'localhost'. * Hosts which matches ENV['no_proxy'] or ENV['NO_PROXY'] won't be proxyed. * [,:] separated. ("ruby-lang.org:rubyist.net") * No regexp. (give "ruby-lang.org", not "*.ruby-lang.org") * If you want specify hot by IP address, give full address. ("192.168.1.1, 192.168.1.2") version 2.0 (as http-access2) * CamelCase to non_camel_case. * SSL support (requires Ruby/OpenSSL). * Cookies support. lib/http-access2/cookie.rb is redistributed file which is originally included in Webagent by TAKAHASHI `Maki' Masayoshi. You can download the entire package from http://www.rubycolor.org/arc/. version J (as http-access2) * Ruby/1.8 support. version H (as http-access2) * HTTP proxy support of version G was broken. Fixed. version G (as http-access2) * Changed HTTPAccess2::Client API. Take care. * Added streaming request API. * Added WebDAV client sample. No XML related functions for now. i.e, you can PUT/GET files. No PROPGET/PROPPATCH? No versioning? Is this a DAV? version F (as http-access2) * Removed dependency to delegate.rb. Kernel.methods in delegate.rb is rather slow...