HTTPal - Ruby HTTP Client
Message from 2022
This post is pretty old! Opinions and technical information in it are almost certainly oudated. Commands and configurations will probably not work. Consider the age of the content before putting any of it into practice.
HTTPal is a Ruby library that behaves more like a regular web browser than Net::HTTP does - it keeps state around between requests. This is incredibly useful for automating scripts that log in and perform actions on sites using cookied sessions, referer tracking, etc.
Usage
http://bonzoesc.net/provingground/cookie.php is a page that in the absence of a cookie, sets one and prints ‘hope you lok’. In the presence of a cookie, it prints 'you do’.
irb(main):001:0> require 'lib/httpal'
=> true
irb(main):002:0> b = HTTPal::Browser.new
=> #
irb(main):003:0> b.get('http://bonzoesc.net/provingground/cookie.php').body
=> "hope you lok"
irb(main):004:0> b.get('http://bonzoesc.net/provingground/cookie.php').body
=> "you do"
irb(main):005:0> HTTPal::Browser.new.use {
irb(main):006:1* puts get('http://bonzoesc.net/provingground/cookie.php').body
irb(main):007:1> puts get('http://bonzoesc.net/provingground/cookie.php').body
irb(main):008:1> }
hope you lok
you do
=> nil
irb(main):009:0>
You can call the get
and post
methods either directly on the object, or from within a block sent to the use
method (because I thought that would be awesome).
Getting It
# unstable = I love to break this version for fun whenever I want
svn co http://brycekerley.net/svn/httpal/trunk httpal
# first tested public release
svn co http://brycekerley.net/svn/httpal/tags/001_firstpub test
Don’t expect a regular schedule for tagged/tested releases - for now this project is pretty much on an as-I-need-it basis.
Whining about Reporting bugs
Send bug reports to bkerley@brycekerley.net after checking Trac to see if they’re fixed. Ticket submission’s not on Trac because it’s a spam magnet and I don’t feel like putting up with it.