4.0.0 RC9
Pre-release
Pre-release
Note: This is a pre-release, there might be breaking changes in the final stable version.
- Added
EventListener
with additional responsibilities forConnectionPool
,Stream
andDelegateHttpClient
implementations. - Added
LimitedConnectionPool
to limit concurrent requests per host - Added
LogHttpArchive
allowing to inspect request timings visually - Changed
HttpClient
to be afinal class
instead of aninterface
- Changed redirect policy to only follow automatically with
GET
requests - Application interceptors doing retries or follow-up requests must now manually clone the request if they wish to reuse it. Previously any
HttpClient
implementation was required to automatically clone at every layer. Http1Connection::__construct()
requires an instance ofEncryptableSocket
instead ofSocket
now.Http1Connection
reuses connections without explicitkeep-alive
header for idempotent requests now.- Pushed requests validate the authority automatically now.
- Renamed
IfOrigin
toMatchOrigin
and changed the implementation to map multiple origins. - Requests can now set an upgrade handler to opt-into connection upgrades, e.g. for WebSocket connections or CONNECT tunnels.
- Removed default interceptors from
PooledHttpClient
and moved them intoHttpClientBuilder
- Removed pings on idle
Http2Connection::request()
improving the overall latency. - Removed
ConditionalInterceptor
- Renamed
Request::getPushCallable()
toRequest::getPushHandler()
- Renamed
Request::onPush()
toRequest::setPushHandler()
- Renamed
DefaultConnectionPool
toUnlimitedConnectionPool
1XX
responses are properly skipped now.- Removed
Connection::MAX_KEEP_ALIVE_TIMEOUT
constant. - Removed
ConnectionPool::getProtocolVersions()