EventMachine based HTTP Request interface. Supports streaming response processing / based on Zed Shaw’s Ragel HTTP parser.

- Borrows a lot of good concepts from Rev's HttpClient, Curb, and other libraries.
- Offers support for single or parallel request queries & via deferred callbacks

Simple client example:


EventMachine.run

http = EventMachine::HttpRequest.new('http://127.0.0.1/').get :query => {'keyname' => 'value'

http.callback {
  p http.response_header.status
  p http.response_header
  p http.response

  EventMachine.stop
}

}

Multi request example:


EventMachine.run {

multi = EventMachine::MultiRequest.new

# add multiple requests to the multi-handler
multi.add(EventMachine::HttpRequest.new('http://www.google.com/').get)
multi.add(EventMachine::HttpRequest.new('http://www.yahoo.com/').get)

multi.callback  {
  p multi.responses[:succeeded]
  p multi.responses[:failed]

  EventMachine.stop
}

}