This package provides an asynchronous HTTP client for PHP based on Amp. Its API simplifies standards-compliant HTTP resource traversal and RESTful web service consumption without obscuring the underlying protocol. The library manually implements HTTP over TCP sockets; as such it has no dependency on ext/curl
.
Features
- Supports HTTP/1 and HTTP/2
- Requests concurrently by default
- Pools persistent connections (keep-alive @ HTTP/1.1, multiplexing @ HTTP/2)
- Transparently follows redirects
- Decodes compressed entity bodies (gzip, deflate)
- Exposes headers and message data
- Streams entity bodies for memory management with large transfers
- Supports all standard and custom HTTP method verbs
- Simplifies HTTP form submissions
- Implements secure-by-default TLS (
https://
) - Supports cookies and sessions
- Functions seamlessly behind HTTP proxies
Installation
This package can be installed as a Composer dependency.
composer require amphp/http-client
Additionally, you might want to install the nghttp2
library to take advantage of FFI to speed up and reduce the memory usage on PHP 7.4.
Documentation
Documentation is bundled within this repository in the docs
directory.
Examples
More extensive code examples reside in the examples
directory.
Versioning
amphp/http-client
follows the semver semantic versioning specification like all other amphp
packages.
Everything in an Internal
namespace or marked as @internal
is not public API and therefore not covered by BC guarantees.
4.x
Stable and recommended version.
3.x
Legacy version. Use amphp/artax
as package name instead.
2.x
No longer maintained. Use amphp/artax
as package name instead.
1.x
No longer maintained. Use amphp/artax
as package name instead.
Security
If you discover any security related issues, please email [email protected]
instead of using the issue tracker.
License
The MIT License (MIT). Please see LICENSE
for more information.