Welcome to the "trac"-ing site of http-access2!
[soap4r] [httpclient] [openpgp4u] [pkcs1] [logger] [csv] [vtr]

httpclient

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

  • Project name: httpclient
  • Version: 2.1.5.2
  • Author: NAKAMURA, Hiroshi a.k.a. NaHi?

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

2009-11-02: Ruby httpclient now on github: http://github.com/nahi/httpclient

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)
  1. locate it as a file at somewhere in your application.
  1. 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.

2009-06-11: httpclient/2.1.5.1

I forgot to update README.txt in 2.1.5 package. Version 2.1.5.1 is just a minor update which only includes README.txt update. No change other than that.

Thanks Stephan for letting me know that!

2009-06-08: httpclient/2.1.5

httpclient/2.1.5 has been released. This release includes IMPORTANT update for HTTPS(SSL) connection. Trusted CA bundle file included in httpclient <= 2.1.4 expires in Nov 2009. Please update to 2.1.5 by Oct 2009 if your application depends on trusted CA bundle file.

It also fixes some bugs. See wiki:Changes-215 for more detail.

Let me know if you have encountered any problem.

Thanks!

2009-05-12: Group on FriendFeed?

Lately I'm using FriendFeed? for collecting my activity. You may be interested in checking a group for httpclient. http://friendfeed.com/ruby-httpclient

I'm preparing 2.1.5 release now.

2009-02-13: httpclient/2.1.4

httpclient/2.1.4 has been released. This release fixes some bugs introduced in httpclient/2.1.3. See wiki:Changes-214 for more detail.

httpclient/2.1.3 users should update to 2.1.4. Let me know if you have encountered any problem.

Thanks!

2009-01-08: httpclient/2.1.3.1

[SECURITY FIX]

httpclient/2.1.3.1 fixes a vulnerability introduced at 2.1.3. httpclient <= 2.1.2 and http-access2 are safe.

  • get_content/post_content of httpclient/2.1.3 may send secure cookies for a https site to non-secure (non-https) site when the https site redirects the request to a non-https site. httpclient/2.1.3 caches request object and reuses it for redirection. It should not be cached and recreated for each time as httpclient <= 2.1.2 and http-access2. See http://dev.ctor.org/http-access2/changeset/259#file2 for more detail.
  • I realized this bug when I was reading open-uri story on [ruby-core:21205]. Ruby users should use open-uri rather than using net/http directly wherever possible.

httpclient/2.1.3 users should update to 2.1.3.1.

2008-12-29: httpclient/2.1.3

httpclient/2.1.3 is out. This release includes performance improvements and full RDoc documentation. (See wiki:Changes-213 for more detail)

Thanks to all of httpclient users for their support.

Have fun!

2008-12-16: httpclient/2.1.2.99.20081216 (2.1.3-rc)

I posted a RC version for 2.1.3 at http://dev.ctor.org/download/. tarball, zip and gem are available. Changes from 2.1.2 are at Changes-213.

Details: http://dev.ctor.org/http-access2/query?status=closed&milestone=2.1.3

Please check this RC and let me know any problem you have. 2.1.3 will be released in a few week.

You can get RC gem from my gem repository for development version: http://dev.ctor.org/download/

-> OldNews

API Document

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

Download

  • Gem repository for stable version
    • (at default remove source at rubyforge.org)
  • Gem repository for development version

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://dev.ctor.org/http-access2/search?ticket=on
  2. login as an anonymous user (user/user for username and password) from http://dev.ctor.org/http-access2/login
  3. create a new ticket from http://dev.ctor.org/http-access2/newticket

Thanks in advance.

Changes

version 2.1.5

version 2.1.4

version 2.1.3

version 2.1.2

version 2.1.1

version 2.1.0

version 2.0.9 (as http-access2)

version 2.0.8 (as http-access2)

version 2.0.7 (as http-access2)

version 2.0.6 (as http-access2)

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)

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 ENVhttp_proxy? or ENVHTTP_PROXY? if the destination host is 'localhost'.
  • Hosts which matches ENVno_proxy? or ENVNO_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...