amphp/http-client
Async HTTP client for PHP built on Amp. Send concurrent requests with connection pooling, timeouts, redirects, proxies, TLS support, and streaming request/response bodies. Includes PSR-7/PSR-18 integration and middleware-style interceptors.
Full Changelog: https://github.com/amphp/http-client/compare/v5.3.3...v5.3.4
Full Changelog: https://github.com/amphp/http-client/compare/v5.3.2...v5.3.3
Full Changelog: https://github.com/amphp/http-client/compare/v5.3.1...v5.3.2
Full Changelog: https://github.com/amphp/http-client/compare/v5.3.0...v5.3.1
Full Changelog: https://github.com/amphp/http-client/compare/v5.2.2...v5.3.0
User-Agent header to contain only characters which should be accepted by all HTTP servers (#371).END_STREAM flag set (#373).HttpException to be thrown instead of returning the response.Full Changelog: https://github.com/amphp/http-client/compare/v5.2.1...v5.2.2
league/uri v6 by @Bilge in https://github.com/amphp/http-client/pull/372Full Changelog: https://github.com/amphp/http-client/compare/v5.2.0...v5.2.1
Full Changelog: https://github.com/amphp/http-client/compare/v4.6.4...v4.6.5
SizeLimitingReadableStream, changing it to StreamException to comply with the ReadableStream interfaceDecompressingReadableStreamFull Changelog: https://github.com/amphp/http-client/compare/v5.1.0...v5.2.0
BufferedContent::fromJson() by @trowski in https://github.com/amphp/http-client/pull/355Form::addNestedFields() by @trowski in https://github.com/amphp/http-client/pull/356RequestBody -> HttpContent by @ShiSHcat in https://github.com/amphp/http-client/pull/358Full Changelog: https://github.com/amphp/http-client/compare/v5.0.1...v5.1.0
Full Changelog: https://github.com/amphp/http-client/compare/v4.6.3...v4.6.4
StreamException or CancelledException as specified by the ReadableStream interface.Full Changelog: https://github.com/amphp/http-client/compare/v5.0.0...v5.0.1
Stable release compatible with AMPHP v3 and fibers! 🎉
As with other libraries compatible with AMPHP v3, most cases of parameters or returns of Promise<ResolutionType> have been replaced with ResolutionType.
Request instances are mutable now and can no longer be reused.Request now extends HttpRequest from amphp/http, gaining methods to get and set query parameters on the request instead of needing to manipulate the URI object directly.getRawHeaders() → getHeaderPairs(), parseRawHeaders() → parseHeaderPairs()UnprocessedRequestException, use Request::isUnprocessed() instead.EventListener interface has been reworked and event listeners can be registered with HttpClientBuilder::listen() now to automatically apply to each request instead of only being registered on specific requests.FormBody with new Form API
appids=30&appids=20 instead of appids%5B0%5D=30&appids%5B1%5D=20 (#340)
If you need the previous names, add [] to the name of your field.RequestBody with new HttpContent API
BufferedContentStreamedContentBody\FileBodyBody\FormBodyBody\JsonBodyBody\StreamBodyBody\StringBodyThere are no changes compared to 5.0.0 Beta 17.
CONNECT requestsFull Changelog: https://github.com/amphp/http-client/compare/v5.0.0-beta.16...v5.0.0-beta.17
Full Changelog: https://github.com/amphp/http-client/compare/v5.0.0-beta.15...v5.0.0-beta.16
Invalid request phase transition from Connect to RequestHeaders (#347)connect* and tls* events on EventListener with new connectionAcquired event. Timings are exposed via methods on Connection now.EventListener::push() to indicate pushed responses to the EventListener and copy event listeners to pushed requests from the parent request to ensure they're called.EventListener::requestFailed to accept any ThrowableRequestUnprocessedRequestException by @kelunik in https://github.com/amphp/http-client/pull/349, use Request::isUnprocessed() instead.Request::isStarted()Full Changelog: https://github.com/amphp/http-client/compare/v5.0.0-beta.14...v5.0.0-beta.15
New event system by @kelunik in https://github.com/amphp/http-client/pull/334:
The EventListener interface has been reworked and event listeners can be registered with HttpClientBuilder::listen() now to automatically apply to each request instead of only being registered on specific requests.
Request phases are now rather strict and checks are in place to ensure the correct order of events. Should you notice any issues with that, please open an issue!
The two remaining issues we want to solve before the stable release are:
Full Changelog: https://github.com/amphp/http-client/compare/v5.0.0-beta.13...v5.0.0-beta.14
league/uri ^7 support, resulting in psr/http-message ^2 supportFollowRedirects to avoid headers of later interceptors being copied to the new request, fixing e.g. raw GZip response bodies on double redirects (#341)Full Changelog: https://github.com/amphp/http-client/compare/v5.0.0-beta.12...v5.0.0-beta.13
psr/http-message ^2 by @drealecs in https://github.com/amphp/http-client/pull/328league/uri ^7 by @nicolas-grekas in https://github.com/amphp/http-client/pull/335Full Changelog: https://github.com/amphp/http-client/compare/v4.6.2...v4.6.3
FollowRedirects (#332)FormForm, see https://github.com/amphp/http-client/commit/69fc08412b2497314d384e7f6dfd2bd5dbf4c9ecHttpClient and in other locations.FormBody with new Form API
appids=30&appids=20 instead of appids%5B0%5D=30&appids%5B1%5D=20 (#340)
If you need the previous names, add [] to the name of your field.RequestBody with new HttpContent API
BufferedContentStreamedContentBody\FileBodyBody\FormBodyBody\JsonBodyBody\StreamBodyBody\StringBodyUpdated for compatibility with amphp/http@2.0-beta.3
Request now extends HttpRequest from amphp/http, gaining methods to get and set query parameters on the request instead of needing to manipulate the URI object directly.getRawHeaders() → getHeaderPairs(), parseRawHeaders() → parseHeaderPairs()2.0 of amphp/socket.amphp/http to 2.0.v2.0 of amphp/byte-stream by updating ReadableStream implementations to also implement Traversable.CancelledException being wrapped in an HttpException when a request is cancelledHEAD requests using HTTP/2 when a Content-Length header was included in the response.Http2StreamResolveBaseUri interceptorHttp2ConnectionException and Http2StreamException.How can I help you explore Laravel packages today?