cythral / reqc
此包已被弃用,不再维护。未建议替代包。
处理入站和出站请求的库。
v1.4.2
2018-01-03 17:02 UTC
Requires
- php: >=7.0
- ext-curl: *
Requires (Dev)
- kherge/box: ^2.7
- satooshi/php-coveralls: ^2.0
This package is not auto-updated.
Last update: 2021-07-24 11:04:35 UTC
README
PHP 中请求处理变得简单
此项目已迁移至 Gitlab,并更名为 Devisr HTTP
请求控制器 (reqc) 是一个用于处理 HTTP、REST、JSON、EventStream/SSE 和 CLI 请求的 PHP 库。未来版本将添加 WebSockets 的额外接口。这个库旨在尽可能简化请求和响应的处理。如果您希望添加特定的客户端、服务器或通用功能,请随时在 问题标签 中请求或在 GitHub 上发起一个 pull request。
目前,HTTP 客户端的函数有限,仅限于需要 HTTP 认证或文件上传的简单请求。更多功能将在未来的版本中添加。
安装
要安装 reqc,请使用 composer 将其安装到您的项目中
composer require cythral/reqc
使用方法
HTTP 客户端
reqc 提供了一个 HTTP 客户端,作为 php 的 curl 扩展的包装器。未来,当 curl 不可用时,它还将能够使用 fsockopen 作为后备。
$request = new reqc\HTTP\Request($options); var_dump($request->response);
其中 $options 是一个具有以下键 => 值对的数组
- url* - 要发送请求的 URL
- method - 要使用的 HTTP 方法 (GET/POST 等.)
- headers - 要设置的头部数组的集合
- json - 布尔值,表示是否将请求和响应体解析为 JSON
- data - 要作为 POST 字段或 JSON 数据发送的键值对数组。如果 content-type 设置为 application/json 或使用 json 模式,这将自动进行 JSON 编码。
- handle-ratelimits - 默认为 true。如果为 true,则请求将尝试重试,直到收到非 429 响应码。
- max-attempts - 默认为 5。设置处理速率限制时的最大重试次数。
* 表示必需的选项
EventStream 服务器
Reqc 提供了一个用于发送服务器端事件的 EventStream 服务器。接口简单,需要注意的是 send 方法,它将事件发送到客户端。这将自动设置内容类型和缓存控制头。要创建和使用 EventStream 服务器,请执行以下操作
$es = new reqc\EventStream\Server(); $es->send("testEventName", "hello world"); // named event $es->send(1, "hello world"); // event with an id $es->send(null, "hello world"); // event without a name or id $es->send("test", [ "foo" => "bar" ]); // event with json data
请求常量
Reqc 提供了多个不同的常量,有助于确定如何处理入站请求。这些的文档将被添加。
未来
未来将添加执行multipart/formdata请求的能力,以及处理和上传文件的能力。其他功能待定。