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
EventListenerwith additional responsibilities forConnectionPool,StreamandDelegateHttpClientimplementations. - Added
LimitedConnectionPoolto limit concurrent requests per host - Added
LogHttpArchiveallowing to inspect request timings visually - Changed
HttpClientto be afinal classinstead of aninterface - Changed redirect policy to only follow automatically with
GETrequests - Application interceptors doing retries or follow-up requests must now manually clone the request if they wish to reuse it. Previously any
HttpClientimplementation was required to automatically clone at every layer. Http1Connection::__construct()requires an instance ofEncryptableSocketinstead ofSocketnow.Http1Connectionreuses connections without explicitkeep-aliveheader for idempotent requests now.- Pushed requests validate the authority automatically now.
- Renamed
IfOrigintoMatchOriginand 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
PooledHttpClientand 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
DefaultConnectionPooltoUnlimitedConnectionPool 1XXresponses are properly skipped now.- Removed
Connection::MAX_KEEP_ALIVE_TIMEOUTconstant. - Removed
ConnectionPool::getProtocolVersions()