Upstream changes (from CHANGES.md):
## 1.0.2 (2016-01-15)
* [#295](https://github.com/httprb/http/pull/295):
Fix redirect following when used with persistent mode.
([@ixti])
## 1.0.1 (2015-12-27)
* [#283](https://github.com/httprb/http/pull/283):
Use io/wait on supported platforms.
([@tarcieri])
## 1.0.0 (2015-12-25)
* [#265](https://github.com/httprb/http/pull/265/):
Remove deprecations ([@tarcieri]):
- HTTP::Chainable#with_follow (use #follow)
- HTTP::Chainable#with, #with_headers (use #headers)
- HTTP::Chainable#auth(:basic, ...) (use #basic_auth)
- HTTP::Chainable#default_headers (use #default_options[:headers])
- HTTP::Headers#append (use #add)
- HTTP::Options#[] hash-like API deprecated in favor of explicit methods
- HTTP::Request#request_header (use #headline)
- HTTP::Response::STATUS_CODES (use HTTP::Status::REASONS)
- HTTP::Response::SYMBOL_TO_STATUS_CODE (no replacement)
- HTTP::Response#status_code (use #status or #code)
- HTTP::Response::Status#symbolize (use #to_sym)
* [#269](https://github.com/httprb/http/pull/273/):
Close connection in case of error during request.
([@ixti])
* [#271](https://github.com/httprb/http/pull/273/):
High-level exception wrappers for low-level I/O errors.
([@ixti])
* [#273](https://github.com/httprb/http/pull/273/):
Add encoding option.
([@connorhd])
* [#275](https://github.com/httprb/http/pull/273/):
Support for disabling Nagle's algorithm with `HTTP.nodelay`.
([@nerdrew])
* [#276](https://github.com/httprb/http/pull/276)
Use Encoding::BINARY as the default encoding for HTTP::Response::Body.
([@tarcieri])
* [#278](https://github.com/httprb/http/pull/278)
Use an options hash for HTTP::Request initializer API.
([@ixti])
* [#279](https://github.com/httprb/http/pull/279)
Send headers and body in one write if possible.
This avoids a pathological case in Nagle's algorithm.
([@tarcieri])
* [#281](https://github.com/httprb/http/pull/281)
Remove legacy 'Http' constant alias to 'HTTP'.
([@tarcieri])
## 0.9.8 (2015-09-29)
* [#260](https://github.com/httprb/http/pull/258):
Fixed global timeout persisting time left across requests when reusing connections.
([@zanker][])
## 0.9.7 (2015-09-19)
* [#258](https://github.com/httprb/http/pull/258):
Unified strategy for handling exception-based and exceptionless non-blocking
I/O. Fixes SSL support on JRuby 9000. ([@tarcieri][])
## 0.9.6 (2015-09-06)
* [#254](https://github.com/httprb/http/pull/254):
Removed use of an ActiveSupport specific method #present?
([@tarcieri][])
## 0.9.5 (2015-09-06)
* [#252](https://github.com/httprb/http/pull/252):
Fixed infinite hang/timeout when a request contained more than ~16,363 bytes.
([@zanker][])
## 0.9.4 (2015-08-26)
* Fixes regression when body streaming was failing on some URIs.
See #246. (@zanker)
* Fixes require timeout statements. See #243. (@ixti)
## 0.9.3 (2015-08-19)
* Fixed request URI normalization. See #246. (@ixti)
- Avoids query component normalization
- Omits fragment component in headline
## 0.9.2 (2015-08-18)
* Fixed exceptionless NIO EOF handling. (@zanker)
## 0.9.1 (2015-08-14)
* Fix params special-chars escaping. See #246. (@ixti)
## 0.9.0 (2015-07-23)
* Support for caching removed. See #240. (@tarcieri)
* JRuby 9000 compatibility
## 0.7.3 (2015-03-24)
* SECURITY FIX: http.rb failed to call the #post_connection_check method
on SSL connections. This method implements hostname verification, and
without it http.rb was vulnerable to MitM attacks. The problem was
corrected by calling #post_connection_check (CVE-2015-1828)
## 0.7.1 (2015-01-03)
* Gemspec fixups
* Remove superfluous space in HTTP::Response inspection
## 0.7.0 (2015-01-02)
* 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 deprecate `HTTP::Request#__method__`
(@sferik)
* Deprecate `HTTP::Response::STATUS_CODES`,
use `HTTP::Response::Status::REASONS` instead (@ixti)
* Deprecate `HTTP::Response::SYMBOL_TO_STATUS_CODE` (@ixti)
* Deprecate `HTTP::Response#status_code` (@ixti)
* `HTTP::Response#status` now returns `HTTP::Response::Status`. (@ixti)
* `HTTP::Response#reason` and `HTTP::Response#code` are proxies them
to corresponding methods of `HTTP::Response#status` (@ixti)
* Rename `HTTP.with_follow` to `HTTP.follow` and mark former one as being
deprecated (@ixti)
* Delegate `HTTP::Response#readpartial` to `HTTP::Response::Body` (@ixti)
## 0.6.3 (2014-11-14)
* Backported EOF fix from master branch. See #166. (@ixti)
## 0.6.2 (2014-08-06)
* Fix default Host header value. See #150. (@ixti)
* Deprecate BearerToken authorization header. (@ixti)
* Fix handling of chunked responses without Content-Length header. (@ixti)
* Rename `HTTP.with_follow` to `HTTP.follow` and mark former one as being
deprecated (@ixti)
part of PR pkg/48447
The HTTP Gem is an easy-to-use client library for making requests from Ruby.
It uses a simple method chaining system for building requests, similar to
libraries like JQuery or Python's Requests.