Skip to content

localzet/HttpClient

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Скачивания Коммиты Версия Версия PHP Лицензия

Установка

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;
    }
);

About

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.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Contributors

Languages