phasync/http-client
Composer 安装命令:
composer require phasync/http-client
包简介
An async PSR-18 HTTP Client implementation.
README 文档
README
The phasync HTTP Client is a powerful, fiber-based HTTP client for PHP, leveraging the concurrency features of PHP Fibers to manage non-blocking requests efficiently. This client is compliant with PSR-18 and allows extensive configuration via cURL options to tailor request handling according to your needs.
Features
- Concurrent HTTP requests: Utilizes PHP fibers to perform non-blocking HTTP requests.
- Full PSR-18 compatibility: Fully compliant with the PSR-18 interface for HTTP clients.
- Extensive configuration: Customize every aspect of HTTP requests using a wide range of cURL options.
Installation
Use Composer to install the Phasync HTTP Client in your project:
composer require phasync/http-client
Usage
Basic Usage
Here is a simple example of making concurrent GET request:
use phasync\HttpClient\HttpClient; $client = new HttpClient(); // Concurrent requests: $response1 = $client->get('https://httpbin.org/get'); $response2 = $client->get('https://www.reddit.com/"); // All requests are performed in parallel using `curl_multi` under the hood. echo $response1->getBody(); echo $resposne2->getBody();
POST Request
To send a POST request with data:
$response = $client->post('https://httpbin.org/post', [ 'foo' => 'bar' ]); echo $response->getBody();
PSR-18 Client Usage
The client supports the PSR-18 client specification:
$psr7Response = $client->sendRequest($psr7Request);
Handling Redirects
Automatically handle redirects:
$client = new HttpClient([ 'followLocation' => true ]); $response = $client->get('https://httpbin.org/redirect-to?url=http%3A%2F%2Fexample.com');
Custom cURL Options
Customize client behavior by setting cURL options:
$client = new HttpClient([ 'timeoutMs' => 1000, 'userAgent' => 'PhasyncClient/1.0' ]);
Configuration Options
The HttpClientOptions class provides a way to configure a variety of options for handling requests:
userAgent: Set the 'User-Agent' header.timeoutMs: Maximum number of milliseconds to allow cURL functions to execute.followLocation: Follow redirects.sslVerifyPeer: Verify the peer's SSL certificate.- And many more detailed in the class definition.
Refer to the HttpClientOptions class for a comprehensive list of all configurable options.
Contributing
Contributions are welcome! Please feel free to submit pull requests or create issues for bugs and feature requests.
License
This project is open-sourced software licensed under the MIT license.
phasync/http-client 适用场景与选型建议
phasync/http-client 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 2.94k 次下载、GitHub Stars 达 8, 最近一次更新时间为 2024 年 06 月 25 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 phasync/http-client 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 phasync/http-client 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 2.94k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 8
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-06-25