http.rb is an HTTP client library which exposes an easy-to-use chainable
API for constructing HTTP requests:
To install it:
gem install http
To use it:
require 'http'
HTTP.get("https://www.google.com").to_s
It’s that easy!
http.rb was previously named “The HTTP Gem” and located under “tarcieri”
on
Github, however we have rebranded and put it under its own organization
in
hopes of improving discoverability and SEO.
This library implements the HTTP protocol from-scratch without any
dependencies on Ruby’s Net::HTTP. It uses the http_parser.rb library, a
native extension containing the Node.js parser for CRubies and a Java
port
thereof for JRuby.
The entire library has been written from the ground up to support
end-to-end streaming.
The API is inspired in part by the Requests library from Python:
http://docs.python-requests.org/
–
Full change log below:
- Fix handling of EOF which caused infinite loop. See #163, #166 and
#152.
(@mickm, @ixti) - Drop Ruby 1.8.7 support. (@ixti)
- Fix default Host header value. See #150. (@ixti)
- Remove BearerToken authorization header. (@ixti)
-
#auth
sugar now accepts only string value of Authorization header.
Calling#auth(:basic, opts)
is deprecated, use#basic_auth(opts)
instead.
(@ixti) - Fix handling of chunked responses without Content-Length header.
(@ixti) - Remove
HTTP::Request#method
and deprecateHTTP::Request#__method__
(@sferik) - Deprecate
HTTP::Response::STATUS_CODES
,
useHTTP::Response::Status::REASONS
instead (@ixti) - Deprecate
HTTP::Response::SYMBOL_TO_STATUS_CODE
(@ixti) - Deprecate
HTTP::Response#status_code
(@ixti) -
HTTP::Response#status
now returnsHTTP::Response::Status
. (@ixti) -
HTTP::Response#reason
andHTTP::Response#code
are proxies them
to corresponding methods ofHTTP::Response#status
(@ixti) - Rename
HTTP.with_follow
toHTTP.follow
and mark former one as
being
deprecated (@ixti) - Delegate
HTTP::Response#readpartial
toHTTP::Response::Body
(@ixti)