You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
AMPHP is a collection of event-driven libraries for PHP designed with fibers and concurrency in mind.
This package provides automatic cookie handling as a plugin for amphp/http-client.
Installation
This package can be installed as a Composer dependency.
composer require amphp/http-client-cookies
Usage
Amp\Http\Client\Cookie\CookieInterceptor must be registered as a NetworkInterceptor to enable automatic cookie handling.
It requires a CookieJar implementation, where you can choose between LocalCookieJar, FileCookieJar, and NullCookieJar.
<?phpuseAmp\Http\Client\Cookie\CookieInterceptor;
useAmp\Http\Client\Cookie\LocalCookieJar;
useAmp\Http\Client\HttpClientBuilder;
useAmp\Http\Client\Request;
useAmp\Http\Client\Response;
require__DIR__ . '/vendor/autoload.php';
$cookieJar = newLocalCookieJar;
$httpClient = (newHttpClientBuilder)
->interceptNetwork(newCookieInterceptor($cookieJar))
->build();
$firstResponse = $httpClient->request(newRequest('https://google.com/'));
$firstResponse->getBody()->buffer();
$secondResponse = $httpClient->request(newRequest('https://google.com/'));
$secondResponse->getBody()->buffer();
$otherDomainResponse = $httpClient->request(newRequest('https://amphp.org/'));
$otherDomainResponse->getBody()->buffer();
print"== first response stores cookies ==\r\n";
print\implode("\r\n", $firstResponse->getHeaderArray('set-cookie'));
print"\r\n\r\n";
print"== second request sends cookies again ==\r\n";
print\implode("\r\n", $secondResponse->getRequest()->getHeaderArray('cookie'));
print"\r\n\r\n";
print"== other domain request does not send cookies ==\r\n";
print\implode("\r\n", $otherDomainResponse->getRequest()->getHeaderArray('cookie'));
Examples
More extensive code examples reside in the examples directory.
Versioning
amphp/http-client-cookies follows the semver semantic versioning specification like all other amphp packages.
Security
If you discover any security related issues, please email me@kelunik.com instead of using the issue tracker.
License
The MIT License (MIT). Please see LICENSE for more information.