- Add your changelog entry here
- gemspec: Exclude spec files from published gem by @ChristopherBert in #252
- Allow use with rack 3.1
- Don't change http header casing by @pcai in #249
HTTPI is officially in maintenance mode. Our emphasis will now be on bugs, security fixes, and compatibility with the wider ecosystem. See this issue for details.
- Adds support for rack 3.0.
- POTENTIAL BREAKING CHANGE:
HTTPI::Request#headers
andHTTPI::Response#headers
now returnHTTPI::Utils::Headers
instead ofRack::Utils::HeaderHash
. This change will prevent HTTPI from breaking or changing its public API whenever rack rearranges its classes. If you were relying on theRack::Utils::HeaderHash
implementation, you will need to update your code to useHTTPI::Utils::Headers
instead.
Yanked due to a bug when used with rack 2.
- Improvement: #237 Implemented
adapter_client_setup
. - Add support for ruby 3.1, 3.2, 3.3. Drop support for ruby 2.7 and below.
- Pin to rack version < 3, HTTPI is not tested with rack 3 yet.
- Fix: #230 Make rack a runtime dependency.
- Improvement: #225 Make rack and socksify dependencies optional.
- Feature: #214 Add SSL ciphers configuration
- Improvement: #227 Use GitHub Actions as CI. Require at least Ruby v2.3.
- Improvement: #209 Drop Travis CI support for Ruby < 2.3.0 and jruby.
- Feature: #208 Add SSL min/max_version configuration for supporting adapters
- Improvement: #206 Support for net-http-persistent v3
- Improvement: #204 Avoid excon warning
- Improvement: #197 Add support for new write timeout option to all adapters
- Fix: #196 Fix httpi adapters support for read/open timeout
- Improvement: Remove references to broken site
- Fix: #190 Don't convert port to string on Excon adapter
- Fix: #171 bug with rubyntlm v0.6.0
- Fix: #181 excon and http adapters
- Feature: #183 Logging ssl information of a request
- Fix: #187 only require ntlm if ntlm auth was requested
- Feature: #165 Extended net_http adapter ssl options with cert_store and ca_path
- Improvement: #166 fix some warnings
- Feature: #167 adds missing support for cert password
- Feature: #163 Support HTTP Basic auth in Rack adapter
- Fix: #162 fixing excon adapter to pass client_cert and key as strings instead of objects
- Fix: #160 httpclient adapter now accepts NTLM auth
- Improvement: #158 Limit the maximum of redirects to prevent infinite redirects
- Improvement: #153 Dynamically determine methods Net::HTTP supports
- Improvement: #155 Enable socks proxy server specification
- Improvement: #151 Fix excon verify mode
- Fix: #149 Ensure that header exists before accessing it
- Fix: #147 Fix call Curb client "SSL peer certificate or SSH remote key was not OK" bug
- Feature: #145 Add support to http.rb adapter
- Feature: #144 Add NTLM support for CURB
- Formally drop support for ruby 1.8.7
- Improvement: #136 Allow setting of ssl versions depending on what versions OpenSSL provides at runtime.
- Improvement: #133 Add 'query' to available attribute writers so it can be set with 'new'
- Fix: #132 Fix a few warnings, among which a circular require
- Fix: #131 Excon adapter should respect :ssl_version
- Fix: #128 Fix for libcURL crash on some ssystems.
- Fix: #120 fixed an unintended crash when an incompatible version of NTLM was required. Thanks to hubrix
- Feature: #117 Follow 302 redirects
- Feature: #118 Support for SSL certificate private keys in formats other than RSA
- Feature: #118 Support for other SSL certificate keys, not only RSA. Thanks to Novikov Andrey.
- Fix: #116 Fix NoMethodError when not using NTLM.
- Fix: #111 Check rubyntlm version in a 0.4.0+ compatible way. Thanks to Carl Zulauf.
- Fix: #109 SSL version is set regardless of SSL auth settings. Thanks to Mike Campbell.
- Feature: #108 Make
rubyntlm
gem, an optional dependency. Thanks to Tim Jarratt.
-
Feature: #75 Rack adapter.
-
Feature: #91 New excon adapter.
-
Feature: #92 New net-http-persistent adapter.
-
Feature: #87 NTLM support with full domain and server authentication.
-
Feature: #71 chunked responses.
-
Fix: #81 send SSL client certificate even when
:ssl_verify_mode
is set to:none
. -
Fix: #69 truncating response headers.
-
Fix: #88 timeout and proxy options are now properly passed to the EM-HTTP-Request client.
-
Fix: #69 Fixes a problem where the response headers were truncated.
-
Fix: #90 we now raise an error if you try to use Net::HTTP with HTTP digest authentication, because Net::HTTP does not support digest authentication.
- Feature: Changed
HTTPI::Request#set_cookies
to accept an Array ofHTTPI::Cookie
objects as well as any object that responds tocookies
(like anHTTPI::Response
).
- Fix: #72 standardized response headers from all adapters.
-
Feature: #63 adds support for EventMachine::HttpRequest. Additional information at #40.
-
Feature: Added support for custom HTTP methods to clients supporting this feature. It's limited to the
:httpclient
and:em_http
adapter.HTTPI.request(:custom, request)
-
Improvement: #64 adds support for specifying the SSL version to use.
-
Improvement: Log to
$stdout
(instead ofSTDOUT
) using a default log level of:debug
(instead of:warn
). -
Improvement: In case an adapter doesn't support a general feature, we now raise an
HTTPI::NotSupportedError
. -
Improvement: Added support for adding custom adapters.
-
Refactoring: Simplified the adapter interface.
- Fix: #56 ensures that the "Cookie" header is not set to nil.
- Refactoring: Moved code that sets the cookies from the last response for the
next request from Savon to
HTTPI::Request#set_cookies
.
-
Feature: #48 @jheiss added support for HTTP Negotiate/SPNEGO authentication (curb-specific).
-
Fix: #53 fixed an issue where
HTTPI.log_level
did not do anything at all.
-
Fix: Merged pull request 49 so that cert and cert_key can be manually set.
-
Fix: Stop auto-detecting gzipped responses by inspecting the response body to allow response compression only.
-
Feature: Merged pull request 46 to support request body Hashes. Fixes issue 45.
request.body = { :foo => :bar, :baz => :foo } # => "foo=bar&baz=foo"
-
Feature: Merged pull request 43 to allow proxy authentication with net/http.
-
Feature: Merged pull request 42 which sets up HTTP basic authentication if user information is present in the URL.
-
Fix: Merged pull request 44 to fix issue 26 and probably also issue 32 - SSL client authentication.
- Improvement: Moved support for NTLM authentication into a separate gem. Since NTLM support caused quite some problems for people who didn't even need it, I decided to move it into httpi-ntlm until it's stable.
-
Fix: issues 34 and 29 - replaced the dependency on
ntlm-http
with a dependency onpyu-ntlm-http
which comes with quite a few bugfixes. -
Fix: Setting the default adapter did not always load the adapter's client library.
-
Improvement: Added a shortcut method to set the default adapter to use.
HTTPI.adapter = :net_http
-
Fix: issue 31 missing headers when using httpclient.
-
Fix: issue 30 fix for using SSL with Net::HTTP.
- Fix: issues 161 and 165 reported at savonrb/savon.
- Fix: issue 25 problem with HTTPI using the Net::HTTP adapter [hakanensari].
-
Feature: improved the adapter loading process (d4a091) [rubiii].
Instead of using HTTPClient as the default and falling back to NetHTTP, the loading process now does the following:
-
Check if either HTTPClient, Curb or NetHTTP are already defined. If any one of those is defined, use it.
-
Try to require HTTPClient, Curb and NetHTTP at last. If any one of those can be required, use it.
Of course you can still manually specify the adapter to use.
-
-
Fix: issue 22 argument error on logging adapter warning [rubiii].
-
Fix: issue 23 the HTTPI.log method now works as expected [rubiii].
-
Feature: added support for NTLM authentication (96ceb1) [MattHall].
You should now be able to use NTLM authentication by specifying your credentials via
HTTPI::Auth::Config#ntlm
:request = HTTPI::Request.new request.auth.ntlm "username", "password"
-
Improvement: changed the default log level to :warn (d01591) and log at appropriate levels (21ee1b) [ichverstehe].
-
Fix: issue 18 don't mask exceptions in decoded_gzip_body (f3811b) [fj].