Releases: amphp/http-client
5.1.0
4.6.4
What's Changed
- Make implicit nullable types explicit by @nicolas-grekas in #359
Full Changelog: v4.6.3...v4.6.4
5.0.1
5.0.0
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.- Removed cloning of request attributes – You can use any value in attributes now.
Request
now extendsHttpRequest
fromamphp/http
, gaining methods to get and set query parameters on the request instead of needing to manipulate the URI object directly.- Renamed header methods using the term "raw" to use "pairs" instead, e.g.,
getRawHeaders()
→getHeaderPairs()
,parseRawHeaders()
→parseHeaderPairs()
- Changed timeout unit from milliseconds to seconds (like timers in the event loop)
- Removed
UnprocessedRequestException
, useRequest::isUnprocessed()
instead. - The
EventListener
interface has been reworked and event listeners can be registered withHttpClientBuilder::listen()
now to automatically apply to each request instead of only being registered on specific requests. - Replaced
FormBody
with newForm
API- Repeated form fields are no longer sent in PHP specific encoding, i.e.
appids=30&appids=20
instead ofappids%5B0%5D=30&appids%5B1%5D=20
(#340)
If you need the previous names, add[]
to the name of your field.
- Repeated form fields are no longer sent in PHP specific encoding, i.e.
- Replaced
RequestBody
with newHttpContent
API- Added
BufferedContent
- Added
StreamedContent
- Removed
Body\FileBody
- Removed
Body\FormBody
- Removed
Body\JsonBody
- Removed
Body\StreamBody
- Removed
Body\StringBody
- Added
There are no changes compared to 5.0.0 Beta 17.
5.0.0 Beta 17
What's Changed
- Fixed event transitions for
CONNECT
requests
Full Changelog: v5.0.0-beta.16...v5.0.0-beta.17
5.0.0 Beta 16
What's Changed
- Fixed HTTP/2 request bodies (regression introduced in 5.0.0 Beta 14)
- Fixed event phase issue for rejected requests (#351)
Full Changelog: v5.0.0-beta.15...v5.0.0-beta.16
5.0.0 Beta 15
What's Changed
- Fixed
Invalid request phase transition from Connect to RequestHeaders
(#347) - Replace
connect*
andtls*
events onEventListener
with newconnectionAcquired
event. Timings are exposed via methods onConnection
now. - Added
EventListener::push()
to indicate pushed responses to theEventListener
and copy event listeners to pushed requests from the parent request to ensure they're called. - Changed
EventListener::requestFailed
to accept anyThrowable
- Added clone support for
Request
- Fixed retries, which didn't clone requests before
- Remove
UnprocessedRequestException
by @kelunik in #349, useRequest::isUnprocessed()
instead. - Remove
Request::isStarted()
Full Changelog: v5.0.0-beta.14...v5.0.0-beta.15
5.0.0 Beta 14
What's Changed
New event system by @kelunik in #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: v5.0.0-beta.13...v5.0.0-beta.14
5.0.0 Beta 13
- Add
league/uri
^7 support, resulting inpsr/http-message
^2 support - Clone requests before processing them in
FollowRedirects
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: v5.0.0-beta.12...v5.0.0-beta.13
4.6.3
What's Changed
- Allow
psr/http-message
^2 by @drealecs in #328 - Allow
league/uri
^7 by @nicolas-grekas in #335 - Fix HTTP/2 cancellation while receiving the response
New Contributors
Full Changelog: v4.6.2...v4.6.3