Skip to content


nahi edited this page · 10 revisions

httpclient - HTTP accessing library. Copyright (C) 2000-2011 NAKAMURA, Hiroshi

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

See API Doc for documentation.


  • 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)



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.



You can install httpclient with rubygems.

  % gem install httpclient


You can install httpclient with the bundled installer script.

  $ ruby install.rb

It will install lib/* to your site_ruby directory such as /usr/local/lib/ruby/site_ruby/1.8/.

For uninstall, delete installed files from your site_ruby directory.


See API Doc for documentation. You can also check sample/howto.rb how to use APIs.


Bug report or Feature request

If you have any problem, please file a ticket at "":



Something went wrong with that request. Please try again.