localzet / http
Localzet HTTP Client is a library for making HTTP requests. It is developed by Ivan Zorin and uses modern technologies and standards for efficient and reliable HTTP communication.
Fund package maintenance!
localzet
v2.0.2
2024-10-26 12:32 UTC
Requires
- php: ^8.0
- ext-curl: *
- ext-json: *
- localzet/psr7: ^3.0
- localzet/server: ^4.2
- psr/http-message: ^2.0
README
Установка
composer require localzet/http
Примеры
example.php
<?php use localzet\HTTP\AsyncClient; require __DIR__ . '/vendor/autoload.php'; $http = new AsyncClient(); /** * $http->get() принимает 3 аргумента: * 1. URL (параметры указываются в самом URL) * 2. Callback при удачном запросе * 3. Callback при ошибке */ $http->get( 'https://example.com/', function ($response) { var_dump($response->getStatusCode()); echo $response->getBody(); }, function ($exception) { echo $exception; } ); /** * $http->post() принимает 4 аргумента: * 1. URL * 2. Параметры * 3. Callback при удачном запросе * 4. Callback при ошибке */ $http->post( 'https://example.com/', ['key1' => 'value1', 'key2' => 'value2'], function ($response) { var_dump($response->getStatusCode()); echo $response->getBody(); }, function ($exception) { echo $exception; } ); /** * $http->request() принимает 2 аргумента: * 1. URL * 2. Опции [ * method, Метод * version, Версия HTTP * headers, Массив заголовков * data, Параметры (вне зависимости от метода, работает http_build_query()) * success, Callback при удачном запросе * error Callback при ошибке * ] */ $http->request( 'https://example.com/', [ 'method' => 'POST', 'version' => '1.1', 'headers' => ['Connection' => 'keep-alive'], 'data' => ['key1' => 'value1', 'key2' => 'value2'], 'success' => function ($response) { echo $response->getBody(); }, 'error' => function ($exception) { echo $exception; } ] );
Калибровка клиента
<?php use localzet\HTTP\Client; require __DIR__ . '/vendor/autoload.php'; $options = [ 'max_conn_per_addr' => 128, // Максимум одновременных запросов к одному URL 'keepalive_timeout' => 15, // Время жизни соединения 'connect_timeout' => 30, // Ожидание между соединениями 'timeout' => 30, // Ожидание между запросами ]; $http = new Client($options); /** * $http->get() принимает 3 аргумента: * 1. URL (параметры указываются в самом URL) * 2. Callback при удачном запросе * 3. Callback при ошибке */ $http->get( 'https://example.com/', function ($response) { var_dump($response->getStatusCode()); echo $response->getBody(); }, function ($exception) { echo $exception; } );