PHPackages                             rvasiliy/http\_client - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. rvasiliy/http\_client

ActiveLibrary[HTTP &amp; Networking](/categories/http)

rvasiliy/http\_client
=====================

Http client library

v2.0.2(4y ago)031MITPHPPHP &gt;=5.6.0

Since Mar 22Pushed 4y ago1 watchersCompare

[ Source](https://github.com/rvasiliy/http_client)[ Packagist](https://packagist.org/packages/rvasiliy/http_client)[ Docs](https://github.com/rvasiliy/http_client)[ RSS](/packages/rvasiliy-http-client/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependencies (1)Versions (9)Used By (0)

HttpClient
==========

[](#httpclient)

[![Latest Stable Version](https://camo.githubusercontent.com/742adf755d8675bad39d4311b8f5d04fc8a2191cd18399396a0260ebf5964682/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f72766173696c69792f687474705f636c69656e742e737667)](https://packagist.org/packages/rvasiliy/http_client)[![Total Downloads](https://camo.githubusercontent.com/7d56cb6f76594905cf9c396267087b9be08dfa523607cccbac6de1fb0ddf6c17/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f72766173696c69792f687474705f636c69656e742e737667)](https://packagist.org/packages/rvasiliy/http_client)[![Build Status](https://camo.githubusercontent.com/d874aadd664aba004bb0a5ccb6c03bb86dc91603119e0f56976c749b27d14f61/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f72766173696c69792f687474705f636c69656e742e737667)](https://travis-ci.org/rvasiliy/http_client)

Описание
--------

[](#описание)

**HttpClient** - библиотека для создания систем для отправки и получения запросов посредством *http* протокола. Например *REST* сервисов.

Зависимости
-----------

[](#зависимости)

- **PHP:** версия 5.6 и выше

Установка
---------

[](#установка)

```
    composer require rvasiliy/http_client
```

или

```
    // composer.json

    "require": {
        "rvasiliy/http_client": "*"
    }
```

Конфигурация
------------

[](#конфигурация)

Для работы клиент может быть сконфигурирован посредством массива конфигурации. Конфигурация по умолчанию выглядит следующим образом:

```
    $config = [
        // базовый url, который будет добавлен как префикс к другим
        'baseUrl' => '',

        'serializer' => [
            'class' => 'rvasiliy\\http_client\\serializer\\StringSerializer',
        ],
    ];
```

Если требуется обрабатывать ответы в формате *json*, то конфигурация должна быть такой:

```
    $config = [
        // базовый url, который будет добавлен как префикс к другим
        'baseUrl' => '',

        'serializer' => [
            'class' => 'rvasiliy\\http_client\\serializer\\JsonSerializer',
            'property' => [
                // true - данные в виде массива
                // false - данные в виде объекта
                'asArray' => true,
            ],
        ],
    ];
```

Создание и конфигурация клиента
-------------------------------

[](#создание-и-конфигурация-клиента)

```
    require __DIR__ . '/vendor/autoload.php';

    \rvasiliy\http_client\HttpClient::configure($config);
    $client = \rvasiliy\http_client\HttpClient::getInstance();
```

или

```
    require __DIR__ . '/vendor/autoload.php';

    $client = \rvasiliy\http_client\HttpClient::getInstance();
    $client->setConfig($config);
```

Получить доступ к объекту конфигурации можно так:

```
    $config = \rvasiliy\http_client\HttpClient::getInstance()->getConfig();
```

Это можно использовать для получения доступа к переменным конфигурации по всему приложению.

С версии *2.0.0* если конфигурация не была применена, то будет создана конфигурация по умолчанию. Найти ее можно в файле *config/default.php*.

Отправка запросов
-----------------

[](#отправка-запросов)

```
    // создаем объект запроса
    $request = new \rvasiliy\http_client\Request();
    $request->setUrl('http://example.com/status');
    $request->setParams(['name' => 'Jon']);

    // отправляем запрос и получаем ответ
    $response = $client->send($request);
```

С версии *1.1.0* объект запроса можно передавать в клиент с помощью сеттера.

```
    // создаем объект запроса
    $request = new \rvasiliy\http_client\Request();
    $request->setUrl('http://example.com/status');
    $request->setParams(['name' => 'Jon']);

    // передаем запрос в клиент
    $client->setRequest($request);

    // отправляем запрос и получаем ответ
    $response = $client->send();
```

Получение данных
----------------

[](#получение-данных)

Когда объект ответа получен, из него можно получить данные.

```
    $data = $response->getData();
```

Формат получаемых данных зависит от используемого сериализатора в объекте ответа.

- **StringSerializer** - данные не изменяются и возвращаются в таком же виде, в котором они були получены с сервера;
- **JsonSerializer** - преобразует данные в массив или объект в зависимости от настроек;
- Вы также можете создавать свои сериализаторы, реализуя интерфейс *rvasiliy\\http\_client\\Serializer*.

Доступ к объекту сериализатора возможен через объект ответа:

```
    $serializer = $response->getSerializer();
```

Пример кода. Все вместе
-----------------------

[](#пример-кода-все-вместе)

```
    // подключаем автозагрузчик классов
    require __DIR__ . '/vendor/autoload.php';

    // массив конфигурации
    $config = [
        'baseUrl' => 'http://example.com',
        'serializer' => [
            'class' => 'rvasiliy\\http_client\\serializer\\JsonSerializer',
            'property' => [
                'asArray' => false,
            ],
        ],
    ];

    // создаем и конфигурируем клиент
    $client = \rvasiliy\http_client\HttpClient::getInstance();
    $client->setConfig($config);

    // создаем объект запроса
    $request = new \rvasiliy\http_client\Request();
    $request->setUrl('/status');
    $request->setParams(['name' => 'Jon']);

    // отправляем запрос
    $response = $client->send($request);

    // получаем данные
    $data = $response->getData();
```

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~241 days

Recently: every ~361 days

Total

7

Last Release

1523d ago

Major Versions

v1.1.1 → v2.0.02018-04-07

### Community

Maintainers

![](https://www.gravatar.com/avatar/f548d3a00f8024c33e3b8ab7f22a744973c62bfc2a607ab45b72527f57cf1e7f?d=identicon)[rvasiliy](/maintainers/rvasiliy)

---

Top Contributors

[![rvasiliy](https://avatars.githubusercontent.com/u/11137939?v=4)](https://github.com/rvasiliy "rvasiliy (36 commits)")

---

Tags

http client

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/rvasiliy-http-client/health.svg)

```
[![Health](https://phpackages.com/badges/rvasiliy-http-client/health.svg)](https://phpackages.com/packages/rvasiliy-http-client)
```

###  Alternatives

[psr/http-client

Common interface for HTTP clients

1.7k680.7M2.1k](/packages/psr-http-client)[kriswallsmith/buzz

Lightweight HTTP client

2.0k31.3M443](/packages/kriswallsmith-buzz)[react/http

Event-driven, streaming HTTP client and server implementation for ReactPHP

78126.4M414](/packages/react-http)[smi2/phpclickhouse

PHP ClickHouse Client

83510.1M71](/packages/smi2-phpclickhouse)[eightpoints/guzzle-bundle

Integrates Guzzle 6.x, a PHP HTTP Client, into Symfony. Comes with easy and powerful configuration options and optional plugins.

45912.1M55](/packages/eightpoints-guzzle-bundle)[laminas/laminas-http

Provides an easy interface for performing Hyper-Text Transfer Protocol (HTTP) requests

3729.5M267](/packages/laminas-laminas-http)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
