Skip to content

Releases: amphp/http-client

4.0.0 RC6

08 Oct 22:58
v4.0.0-rc6
Compare
Choose a tag to compare
4.0.0 RC6 Pre-release
Pre-release

Note: This is a pre-release, there might be breaking changes in the final stable version.

  • Connections are now attempted concurrently except for the first connection to a specific host if TLS is used, as that connection might be able to use HTTP/2
  • Improved Response::setBody() API
  • Improved backpressure mechanism for HTTP/2
  • Changed Client and DefaultConnectionPool to be immutable, adding an interceptor returns a new instance now
  • Client follows redirects by default, with an option to disable
  • Client automatically retries unprocessed requests on properly closed HTTP/2 connections and idempotent requests on all connections up to two times now, the limit is customizable
  • Added support for request attributes, a request local mutable storage for custom application / interceptor data
  • Removed unused DnsException

4.0.0 RC5

17 Sep 17:02
d10e19b
Compare
Choose a tag to compare
4.0.0 RC5 Pre-release
Pre-release

Note: This is a pre-release, there might be breaking changes in the final stable version.

  • Added compatibility for amphp/file@^1.
  • Fixed cancelling an HTTP/1.x request while the request was being written.

4.0.0 RC4

12 Sep 14:26
e660fd7
Compare
Choose a tag to compare
4.0.0 RC4 Pre-release
Pre-release

Note: This is a pre-release, there might be breaking changes in the final stable version.

  • Fixed appending query to path in HTTP/2 requests.

4.0.0 RC3

09 Sep 14:33
9f136fb
Compare
Choose a tag to compare
4.0.0 RC3 Pre-release
Pre-release

Note: This is a pre-release, there might be breaking changes in the final stable version.

  • Added TimeoutInterceptor that automatically sets request timeouts when used in a Client interceptor stack (#188).
  • HTTP/2 protocol is now declared as "2" instead of "2.0" in requests and responses (see https://http2.github.io/faq/#is-it-http20-or-http2).
  • Pushed requests are no longer modified by interceptors extending ModifyRequest.
  • Fixed cancellation of requests over HTTP/2.
  • Fixed timeouts of requests over HTTP/2.
  • Fixed remaining HTTP/2 stream calculations.

4.0.0 RC2

20 Aug 21:20
4391301
Compare
Choose a tag to compare
4.0.0 RC2 Pre-release
Pre-release

This release adds support for HTTP/2 push promises.

Note: This is a pre-release, there might be breaking changes in the final stable version.

Request now has an onPush() method which defines a callback invoked if the server pushes resources to the client. The callback should accept three arguments: Request $request, Promise $promise, and CancellationTokenSource $source. $request is the request as generated by the pushing server; $promise is a promise that is resolved with the Response object containing the pushed resource; and $source allows the push to be cancelled by the callback.

Request::getPushCallable() returns the callback defined with onPush().

If no push callback is defined in a request, the client automatically refuses any pushed resources.

Application and Network Interceptors should check for a push callback and apply transformations to the request and response accordingly.

Other changes or bugfixes

  • Fixed writing HTTP/2 request bodies
  • Fixed failed requests over HTTP/2 leaving promise returned from Client::request() unresolved
  • Using pseudo headers (headers field names starting with a colon (:)) in a Request or Response object is now forbidden

4.0.0 RC1

13 Aug 23:45
v4.0.0-rc1
Compare
Choose a tag to compare
4.0.0 RC1 Pre-release
Pre-release

Note: This is a pre-release, there might be breaking changes in the final stable version.

This is the first release candidate of amphp/http-client v4. Previously this package was named amphp/artax. Development of the v3.x release series will continue in the old amphp/artax repository.

Please test this pre-release carefully and report any issues you find, so we can soon tag a stable release with support for HTTP/2.

Major Changes

  • Support for HTTP/2
  • Support for ApplicationInterceptor / NetworkInterceptor
  • Changed Request / Response to be mutable
  • Compatibility with amphp/socket v1.0.0
  • Client is now a final class instead of an interface
  • Client behavior should now be modified using interceptors and connection pool implementations

3.0.14

01 Feb 20:32
v3.0.14
Compare
Choose a tag to compare
  • Fixed timeout token leak (#157)

3.0.13

19 Dec 13:49
v3.0.13
Compare
Choose a tag to compare
  • Bumped amphp/file to ^0.2 || ^0.3.

3.0.12

23 Oct 12:39
v3.0.12
Compare
Choose a tag to compare
  • Apply timeouts correctly during connection and TLS handshakes. Previously these could hang indefinitely. See #145.

3.0.11

17 Oct 08:00
v3.0.11
Compare
Choose a tag to compare
  • Fixed issues with responses without content-length and without transfer-encoding: chunked.
  • Revert fix for v3.0.10, as this has been properly fixed in amphp/byte-stream.
  • Catch ConnectException from amphp/socket and throw SocketException instead. The exception was previously leaked, but undocumented and unexpected.