PHPackages                             moln/swoole-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. moln/swoole-http-client

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

moln/swoole-http-client
=======================

Swoole HTTP Client to PSR-7 Response

1.0.1(9y ago)671MITPHP ^5.6 || ^7.0

Since Dec 16Compare

[ Source](https://github.com/Moln/swoole-http-client)[ Packagist](https://packagist.org/packages/moln/swoole-http-client)[ RSS](/packages/moln-swoole-http-client/feed)WikiDiscussions Synced today

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

SwooleHttpClient
================

[](#swoolehttpclient)

封装 Swoole HTTP Client, Response 响应使用psr7 对象, 支持 psr7 request .

Install / 安装
------------

[](#install--安装)

请使用 Composer 安装

```
{
    "require": {
        "moln/swoole-http-client": "^1.0.0"
    }
}
```

Usage / 使用
----------

[](#usage--使用)

### `Moln\SwooleHttpClient\Client`

[](#molnswoolehttpclientclient)

```
use Moln\SwooleHttpClient\Client;
$cli = new Client('192.168.11.5');
$cli->get('/test/1.php', function (\Psr\Http\Message\ResponseInterface $response) {
    var_dump((string)$response->getBody());
});
```

### `Moln\SwooleHttpClient\ClientStatic` 静态调用

[](#molnswoolehttpclientclientstatic-静态调用)

```
use Moln\SwooleHttpClient\ClientStatic;
use Psr\Http\Message\ResponseInterface;

$cli = ClientStatic::get('http://192.168.11.5/test/1.php', function (ResponseInterface $response) {
 var_dump((string)$response->getBody());
})->on('connect', function () {
  var_dump('connect');
});

$cli = ClientStatic::post('http://192.168.11.5/test/1.php', ['key' => 'val'], function (ResponseInterface $response) {
 var_dump((string)$response->getBody());
});
```

### `Moln\SwooleHttpClient\ClientChain` http 客户端链（复用 client 连接对象）

[](#molnswoolehttpclientclientchain-http-客户端链复用-client-连接对象)

```
$client = new \Moln\SwooleHttpClient\ClientChain('192.168.11.5');
$client->on('connect', function ($client) {
    var_dump(spl_object_hash($client));
});

//New 一个新的 Client
$client->get('/test/1.php?s=2&id=3', function ($response) use ($client) {
    //复用 client 对象
    var_dump(spl_object_hash($client->get('/test/1.php?s=1&id=5')));;
    var_dump(spl_object_hash($client->get('/test/1.php?s=1&id=6')));;
});

//没有空闲Client 对象，再 new 一个 Client
$client->get('/test/1.php?s=1&id=4',  function ($response) use ($client) {
});
```

Features / 特点
-------------

[](#features--特点)

### 支持多个事件绑定,官方仅支持1个

[](#支持多个事件绑定官方仅支持1个)

```
use Moln\SwooleHttpClient\Client;
$cli = new Client('192.168.11.5');
$cli->setHeaders(['Connection' => 'close']);
$cli->on('connect', function () use ($cli) {
    var_dump('connect event1', $cli->isConnected());
});
$cli->on('connect', function () use ($cli) {
    var_dump('connect event2', $cli->isConnected());
});
$cli->on('error', function () use ($cli) {
    var_dump('connect event2', $cli->isConnected());
});
```

### 响应的 Response 为 PSR7

[](#响应的-response-为-psr7)

```
use Moln\SwooleHttpClient\Client;
$cli = new Client('192.168.11.5');
$cli->get('/test/1.php', function (\Psr\Http\Message\ResponseInterface $response) {
    var_dump((string)$response->getBody());
});
$cli->post('/test/1.php', ['a' => 1], function (\Psr\Http\Message\ResponseInterface $response) {
    var_dump((string)$response->getBody());
});
```

### 支持PSR7 Request

[](#支持psr7-request)

```
use Moln\SwooleHttpClient\Client;
$cli = new Client('192.168.11.5');
$cli->send(new \GuzzleHttp\Psr7\Request('POST', '/test/1.php?s=1&id=2', ['X-xxx' => '123'], 'x=1'),
    function ($response) {
        var_dump((string)$response->getBody());
    }
);
```

### 支持 Timeout 超时（连接超时，连接响应超时）

[](#支持-timeout-超时连接超时连接响应超时)

使用 `Swoole\Timer::after` 实现连接超时

```
use Moln\SwooleHttpClient\Client;
$cli = new Client('192.168.11.5');
$cli->setTimeout(4);
$cli->setHeaders(['Connection' => 'close']);
$cli->on('connect', function () use ($cli) {
    var_dump('connect', $cli->isConnected());
});
$cli->on('error', function ($cli, $msg) {
    //$cli->isConnected() 判断是连接超时，还是连接上了响应超时
    var_dump('connect error', $msg, $cli->isConnected()); // $msg= 'timeout' ; $msg = 'error';
});
```

###  Health Score

27

—

LowBetter than 47% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

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

Unknown

Total

1

Last Release

3483d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/2050694?v=4)[Moln](/maintainers/Moln)[@Moln](https://github.com/Moln)

---

Tags

httpclientswoolehttpclient

### Embed Badge

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

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

###  Alternatives

[react/http

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

78127.2M453](/packages/react-http)[swlib/saber

Swoole coroutine HTTP client

974148.4k28](/packages/swlib-saber)[swoole/grpc

Grpc PHP Client base on Swoole Http2 Coroutine

19719.7k1](/packages/swoole-grpc)[swoole/etcd-client

Grpc PHP Client base on Swoole Http2 Coroutine

1973.3k1](/packages/swoole-etcd-client)[swoft/http-client

HTTP Client Component for Swoft

1139.3k4](/packages/swoft-http-client)

PHPackages © 2026

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