cythral/reqc

此包已被弃用,不再维护。未建议替代包。

处理入站和出站请求的库。

v1.4.2 2018-01-03 17:02 UTC

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请求的能力,以及处理和上传文件的能力。其他功能待定。