YurunHttp 是开源的 PHP HTTP 类库,支持链式操作,简单易用。 支持所有常见的 GET、POST、PUT、DELETE、UPDATE 等请求方式,支持 Http2、WebSocket、浏览器级别 Cookies 管理、上传下载、设置和读取 header、Cookie、请求参数、失败重试、限速、代理、证书等。 git 仓库中 examples 目录里是示例代码! 更新日志(v3.3.0):
$http = new HttpRequest; $http->protocolVersion = '2.0'; // 这句是关键 $response = $http->get('https://wiki.swoole.com/'); Curl、Swoole Handler 都支持 Http2,但需要注意的是编译时都需要带上启用 Http2 的参数。 查看是否支持: Curl: Swoole: 重大版本更新日志
v3.3.0 新增支持 v3.2.0 新增支持 v3.1.0 引入浏览器级别 v3.0.0 新增支持 v2.0.0 黑历史,不告诉你 v1.3.1 支持 v1.0-1.3 初期版本迭代 Composer本项目可以使用composer安装,遵循psr-4自动加载规则,在你的 { "require": { "yurunsoft/yurun-http": "~3.2" } } 然后执行 之后你便可以使用 用法简单调用<?php use Yurun\Util\HttpRequest; $http = new HttpRequest; $response = $http->ua('YurunHttp') ->get('http://www.baidu.com'); echo 'html:', PHP_EOL, $response->body(); PSR-7 请求构建<?php use Yurun\Util\YurunHttp\Http\Request; use Yurun\Util\YurunHttp; $url = 'http://www.baidu.com'; // 构造方法定义:__construct($uri = null, array $headers = [], $body = '', $method = RequestMethod::GET, $version = '1.1', array $server = [], array $cookies = [], array $files = []) $request = new Request($url); // 发送请求并获取结果 $response = YurunHttp::send($request); var_dump($response); Swoole 协程模式<?php use Yurun\Util\YurunHttp; use Yurun\Util\HttpRequest; // 设置默认请求处理器为 Swoole YurunHttp::setDefaultHandler('Yurun\Util\YurunHttp\Handler\Swoole'); // php 5.4 // YurunHttp::setDefaultHandler(\Yurun\Util\YurunHttp\Handler\Swoole::class); // php 5.5+ // Swoole 处理器必须在协程中调用 go('test'); function test() { $http = new HttpRequest; $response = $http->get('http://www.baidu.com'); echo 'html:', PHP_EOL, $response->body(); } WebSocket ClientYurunHttp::setDefaultHandler(\Yurun\Util\YurunHttp\Handler\Swoole::class); go(function(){ $url = 'ws://127.0.0.1:1234/'; $http = new HttpRequest; $client = $http->websocket($url); if(!$client->isConnected()) { throw new \RuntimeException('Connect failed'); } $client->send('data'); $recv = $client->recv(); var_dump('recv:', $recv); $client->close(); }); 具体详见 相关地址: |