http-client-curl
http-client-curl copied to clipboard
Simple HTTP cURL client for PHP 7.1+ based on PSR-18
Simple HTTP cURL client for PHP 7.1+ based on PSR-18
Installation
composer require sunrise/http-client-curl
QuickStart
composer require sunrise/http-factory
use Sunrise\Http\Client\Curl\Client;
use Sunrise\Http\Factory\RequestFactory;
use Sunrise\Http\Factory\ResponseFactory;
$client = new Client(new ResponseFactory());
$request = (new RequestFactory)->createRequest('GET', 'http://php.net/');
$response = $client->sendRequest($request);
echo $response->getStatusCode(), PHP_EOL;
cURL options
https://www.php.net/manual/ru/curl.constants.php
$client = new Client(new ResponseFactory(), [
\CURLOPT_AUTOREFERER => true,
\CURLOPT_FOLLOWLOCATION => true,
]);
Parallel execution of multiple requests
$requests = [
(new RequestFactory)->createRequest('GET', 'http://php.net/'),
(new RequestFactory)->createRequest('GET', 'http://php.net/'),
];
$client = new Client(new ResponseFactory());
$responses = $client->sendRequests(...$request);
foreach ($responses as $i => $response) {
// note that you can get the response's request by its index...
echo sprintf('%s => %d', $requests[$i]->getUri(), $response->getStatusCode()), PHP_EOL;
}
Test run
composer test
Useful links
- http://php.net/manual/en/intro.curl.php
- https://curl.haxx.se/libcurl/c/libcurl-errors.html
- https://www.php-fig.org/psr/psr-2/
- https://www.php-fig.org/psr/psr-7/
- https://www.php-fig.org/psr/psr-17/
- https://www.php-fig.org/psr/psr-18/


