mirror of
https://github.com/HoneyryderChuck/httpx.git
synced 2025-11-27 00:03:01 -05:00
2.1 KiB
2.1 KiB
0.24.0
Features
:oauth plugin
The :oauth plugin manages the handling of a given OAuth session, in that it ships with convenience methods to generate a new access token, which it then injects in all requests.
More info under https://honeyryderchuck.gitlab.io/httpx/wiki/OAuth
session callbacks
HTTP request/response lifecycle events have now the ability of being intercepted via public API callback methods:
HTTPX.on_request_completed do |request|
puts "request to #{request.uri} sent"
end.get(...)
More info under https://honeyryderchuck.gitlab.io/httpx/wiki/Events to know which events and callback methods are supported.
:circuit_breaker plugin on_circuit_open callback
A callback has been introduced for the :circuit_breaker plugin, which is triggered when a circuit is opened.
http = HTTPX.plugin(:circuit_breaker).on_circuit_open do |req|
puts "circuit opened for #{req.uri}"
end
http.get(...)
Improvements
Several :response_cache features have been improved:
:response_cacheplugin: response cache store has been made thread-safe.- cached response sharing across threads is made safer, as stringio/tempfile instances are copied instead of shared (without copying the underling string/file).
- stale cached responses are eliminate on cache store lookup/store operations.
- already closed responses are evicted from the cache store.
- fallback for lack of compatible response "date" header has been fixed to return a
Timeobject.
Bugfixes
- Ability to recover from errors happening during response chunk processing (required for overriding behaviour and response chunk callbacks); error bubbling up will result in the connection being closed.
- Happy eyeballs support for multi-homed early-resolved domain names (such as
localhostunder/etc/hosts) was broken, as it would try the first given IP; so, if given::1and connection would fail, it wouldn't try127.0.0.1, which would have succeeded. :digest_authenticationplugin was removing the "algorithm" header on-sessdeclared algorithms, which is required for HTTP digest auth negotiation.