Skip to content

Releases: amphp/http-client

5.1.0

21 Apr 16:47
v5.1.0
483df9a
Compare
Choose a tag to compare

What's Changed

  • Add BufferedContent::fromJson() by @trowski in #355
  • Add Form::addNestedFields() by @trowski in #356
  • Make implicit nullable types explicit to avoid deprecation notice in PHP 8.4
  • RequestBody -> HttpContent by @ShiSHcat in #358

New Contributors

Full Changelog: v5.0.1...v5.1.0

4.6.4

21 Mar 19:55
v4.6.4
f607a33
Compare
Choose a tag to compare

What's Changed

Full Changelog: v4.6.3...v4.6.4

5.0.1

11 Dec 04:02
v5.0.1
9b42ca1
Compare
Choose a tag to compare

What's Changed

  • Fail streams only with StreamException by @trowski in #354. Response body streams will now only throw StreamException or CancelledException as specified by the ReadableStream interface.

Full Changelog: v5.0.0...v5.0.1

5.0.0

08 Oct 16:41
v5.0.0
0347699
Compare
Choose a tag to compare

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 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.
  • 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, use Request::isUnprocessed() instead.
  • 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.
  • Replaced FormBody with new Form API
    • Repeated form fields are no longer sent in PHP specific encoding, i.e. 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.
  • Replaced RequestBody with new HttpContent API
    • Added BufferedContent
    • Added StreamedContent
    • Removed Body\FileBody
    • Removed Body\FormBody
    • Removed Body\JsonBody
    • Removed Body\StreamBody
    • Removed Body\StringBody

There are no changes compared to 5.0.0 Beta 17.

5.0.0 Beta 17

05 Sep 21:01
v5.0.0-beta.17
9cd91e1
Compare
Choose a tag to compare
5.0.0 Beta 17 Pre-release
Pre-release

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

03 Sep 16:50
v5.0.0-beta.16
74dbfd7
Compare
Choose a tag to compare
5.0.0 Beta 16 Pre-release
Pre-release

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

30 Aug 22:09
v5.0.0-beta.15
35e8ecb
Compare
Choose a tag to compare
5.0.0 Beta 15 Pre-release
Pre-release

What's Changed

  • Fixed Invalid request phase transition from Connect to RequestHeaders (#347)
  • Replace connect* and tls* events on EventListener with new connectionAcquired event. Timings are exposed via methods on Connection now.
  • Added 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.
  • Changed EventListener::requestFailed to accept any Throwable
  • Added clone support for Request
  • Fixed retries, which didn't clone requests before
  • Remove UnprocessedRequestException by @kelunik in #349, use Request::isUnprocessed() instead.
  • Remove Request::isStarted()

Full Changelog: v5.0.0-beta.14...v5.0.0-beta.15

5.0.0 Beta 14

23 Aug 20:31
v5.0.0-beta.14
a9f2beb
Compare
Choose a tag to compare
5.0.0 Beta 14 Pre-release
Pre-release

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

15 Aug 20:34
v5.0.0-beta.13
fd5b005
Compare
Choose a tag to compare
5.0.0 Beta 13 Pre-release
Pre-release
  • Add league/uri ^7 support, resulting in psr/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

15 Aug 20:16
v4.6.3
6d4dcc7
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v4.6.2...v4.6.3