为 XP 框架提供 HTTP 协议支持

v10.3.0 2024-03-24 11:57 UTC

README

Build status on GitHub XP Framework Module BSD Licence Requires PHP 7.0+ Supports PHP 8.0+ Latest Stable Version

实现了 HTTP(超文本传输协议)并提供了一个客户端与 HTTP 服务器交互。`HttpConnection` 类是入口点类。

方法

不同的请求方法由 `HttpConnection` 类方法如下处理

  • GET - 通过 `get()` 方法
  • POST - 通过 `post()` 方法
  • HEAD - 通过 `head()` 方法
  • PUT - 通过 `put()` 方法
  • PATCH - 通过 `patch()` 方法
  • DELETE - 通过 `delete()` 方法
  • OPTIONS - 通过 `options()` 方法
  • TRACE - 通过 `trace()` 方法

其他方法(例如 WebDAV 中的 `MKCOL`)通过 `request()` 方法支持。

头部信息

以下代码将显示 HEAD 请求的响应头部信息

use peer\http\HttpConnection;

$c= new HttpConnection('http://xp-framework.net/');
Console::writeLine($c->head());

获取数据

with ($c= new HttpConnection('http://xp-framework.net/')); {
  $response= $c->get();
  Console::writeLine('Response: ', $response);
  
  $in= $response->in();
  while ($in->available()) {
    $bytes= $in->read();
  }
}

SSL 支持

此 API 还支持 SSL 连接 - 根据 `HttpConnection` 构造函数中提供的方案,`HttpRequestFactory` 类将创建 SSL 连接。对外面是透明的,其余的调用都是一样的!

示例

$c= new HttpConnection('https://example.com/');

注意:SSL 连接依赖于 PHP 扩展 `curl` 或 `openssl`。