Skip to content

em-http-requestvshttparty

MIT 17 4 1,219
298.2 thousand (month) Oct 25 2009 1.1.7(2020-08-31 21:38:00 ago)
5,889 8 43 MIT
Jul 25 2009 2.2 million (month) 0.24.2(2026-01-14 22:54:36 ago)

em-http-request is a Ruby gem for making asynchronous HTTP requests using EventMachine. It allows you to perform multiple requests simultaneously and handle the responses as they come in, rather than waiting for each request to complete before making the next one.

In short it supports: - Asynchronous HTTP API for single & parallel request execution - Keep-Alive and HTTP pipelining support - Auto-follow 3xx redirects with max depth - Automatic gzip & deflate decoding - Streaming response processing - Streaming file uploads - HTTP proxy and SOCKS5 support - Basic Auth & OAuth - Connection-level & global middleware support - HTTP parser via http_parser.rb - Works wherever EventMachine runs: Rubinius, JRuby, MRI

HTTParty is a Ruby library that makes it easy to work with HTTP requests and responses. It is built on top of the Ruby standard library's Net::HTTP and provides a simple, easy-to-use interface for making requests and handling responses.

One of the main features of HTTParty is its ability to automatically parse response bodies as JSON, XML, or other formats. This allows developers to easily access the data returned by an API without having to manually parse the response.

Example Use


```ruby EventMachine.run { http = EventMachine::HttpRequest.new('http://google.com/').get :query => {'keyname' => 'value'} # add callback for errors: http.errback { p 'Uh oh'; EM.stop } # add callback for successful requests http.callback { p http.response_header.status p http.response_header p http.response EventMachine.stop } } ```
```ruby require 'httparty' # get request: response = HTTParty.get('http://httpbin.org/get') puts response.body puts response.code puts response.message puts response.headers.inspect # post request response = HTTParty.post('http://httpbin.org/post', :body => { :title => 'foo', :body => 'bar', :userId => 1 }.to_json, :headers => { 'Content-Type' => 'application/json' } ) puts response.body ```

Alternatives / Similar


Was this page helpful?