mirror of
https://github.com/HoneyryderChuck/httpx.git
synced 2025-10-05 00:02:38 -04: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_cache
plugin: 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
Time
object.
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
localhost
under/etc/hosts
) was broken, as it would try the first given IP; so, if given::1
and connection would fail, it wouldn't try127.0.0.1
, which would have succeeded. :digest_authentication
plugin was removing the "algorithm" header on-sess
declared algorithms, which is required for HTTP digest auth negotiation.