Home > simplehttp

simplehttp

Simplehttp is a project mainly written in Ruby, based on the View license.

Simple HTTP import from rubyforge

= SimpleHttp - a simplified wrapper around Net::Http

SimpleHttp aims to reduce the complexity of Net::Http while providing the most commonly used (by me) http functionality.

INSTALLATION

  • Using +gem+

    gem install simplehttp

  • Using +setup.rb+

    ruby setup.rb config ruby setup.rb install

  • tarball and zip packages are available from RubyForge[http://rubyforge.org/projects/simplehttp/]

FEATURES / USAGE

  • Require the lib:

    require 'simplehttp'

  • No fuss one line GET and POST requests:

    str = SimpleHttp.get "http://www.example.com" str = SimpleHttp.get "www.example.com"

  • Can use URI or String url interchangibly

    str = SimpleHttp.get URI.parse "http://www.example.com/"

  • Transparent Proxy Handling. Uses the 'http_proxy' environment variable if set, also provides a +set_proxy+ method.

    http = SimpleHttp.new "http://www.example.com" http.set_proxy "http://proxy.example.com:8000" http.post "query" => "example_query"

  • POST sends ruby Hashes as 'application/x-www-form/urlencoded' per default, but can send any data.

    http = SimpleHttp.new "http://www.example.com/image_upload" http.post imageData, "img/png"

  • Automatically handles SSL

    str = SimpleHttp.get "https://secure.example.com"

  • Easy HTTP Basic Authentication str = SimpleHttp.get URI.parse("http://usr:[email protected]")

    or

    http = SimpleHttp.new "http://www.example.com" http.basic_authentication "user", "password" http.post "query" => "example_query"

  • Access headers of the request or response http = SimpleHttp.new "www.example.com" http.request_headers["X-Custom-Header"]="useful header" http.get puts "server set cookie: #{http.response_headers['set-cookie']}"

  • Automatically follows Http Redirects.

The +get+ and +post+ methods return a +String+ containing the body of the request if the request was successful (HTTP 200). In case of a redirect, the redirect is followed and the ultimate response is returned. Per Default, up to three redirects are followed, this behaviour can be modified by setting +follow_num_redirects+.

In case of any other type of response, an exception is raised.

The default behaviour can be modified by registering handlers using the +register_response_handler+ method. E.g. if you'd like to retrieve the +Date+ header instead of the body for successful transactions:

http = SimpleHttp.new ...
http.register_response_handler(Net::HTTPSuccess) {|req,res,http|
    res['date']
}

Or you'd like to print the +Location+ and then raise an exception in case of a redirect:

http = SimpleHttp.new ...
http.register_response_handler(Net::HTTPRedirect) {|req,res,http|
    puts res['location']
    raise "REDIRECT not allowed!"
}
Previous:rouse