内容简介:YurunHttp 是开源的 PHP HTTP 类库,支持链式操作,简单易用。 支持所有常见的 GET、POST、PUT、DELETE、UPDATE 等请求方式,支持 Http2、WebSocket、浏览器级别 Cookies 管理、上传下载、设置和读取 header、Coo...
YurunHttp 是开源的 PHP HTTP 类库,支持链式操作,简单易用。
支持所有常见的 GET、POST、PUT、DELETE、UPDATE 等请求方式,支持 Http2、WebSocket、浏览器级别 Cookies 管理、上传下载、设置和读取 header、Cookie、请求参数、失败重试、限速、代理、证书等。
git 仓库中 examples 目录里是示例代码!
更新日志(v3.4.0):
新增
-
新增支持全双工的 Http2 客户端
-
新增 Attributes 属性的常量定义类,所有 Attribute 操作使用该类中的常量作为名称
-
Swoole Handler 引入连接管理器
-
新增默认缺省的默认 UserAgent (可在每个请求中指定,或设置全局
Attribute::USER_AGENT用以代替默认的 UA) -
支持发送 Http2 请求不调用 recv()
优化
-
Request对象中的Attribute缺省情况下,会从YurunHttp类中获取
-
重构 Swoole Handler
Http2 全双工用法
该用法仅支持 Swoole
$uri = new Uri('https://wiki.swoole.com/');
// 客户端初始化和连接
$client = new \Yurun\Util\YurunHttp\Http2\SwooleClient($uri->getHost(), Uri::getServerPort($uri), 'https' === $uri->getScheme());
$client->connect();
// 请求构建
$httpRequest = new HttpRequest;
$request = $httpRequest->header('aaa', 'bbb')->buildRequest($uri, [
'date' => $i,
], 'POST', 'json');
for($i = 0; $i < 10; ++$i)
{
go(function() use($client, $request){
// 发送(支持在多个协程执行)
$streamId = $client->send($request);
var_dump('send:' . $streamId);
// 接收(支持在多个协程执行)
$response = $client->recv($streamId, 3);
$content = $response->body();
var_dump($response);
});
}
具体用法请看
examples/http2Client.php
重大版本更新日志
每个小版本的更新日志请移步到 Release 查看
v3.4.0 新增支持 Http2 全双工用法
v3.3.0 新增支持 Http2 兼容用法
v3.2.0 新增支持 Swoole WebSocket 客户端
v3.1.0 引入浏览器级别 Cookies 管理
v3.0.0 新增支持 Swoole 协程
v2.0.0 黑历史,不告诉你
v1.3.1 支持 Composer
v1.0-1.3 初期版本迭代
Composer
本项目可以使用composer安装,遵循psr-4自动加载规则,在你的 composer.json 中加入下面的内容
{
"require": {
"yurunsoft/yurun-http": "^3.4.0"
}
}
然后执行 composer update 安装。
之后你便可以使用 include "vendor/autoload.php"; 来自动加载类。(ps:不要忘了namespace)
用法
简单调用
<?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 Client
YurunHttp::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();
});
具体详见examples目录中的示例代码
相关地址:
- API 文档:https://apidoc.gitee.com/yurunsoft/YurunHttp
- Gitee:https://gitee.com/yurunsoft/YurunHttp
- Github:https://github.com/Yurunsoft/YurunHttp
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
HTML5+CSS3精致范例辞典
杨东昱 / 清华大学出版社 / 2013-1 / 48.00元
《HTML5+CSS3精致范例辞典(全彩印刷)》是专为希望成为网页设计师的学习者打造的工具书,书中详细说明了设计网页所需的HTML标记语言,对HTML5的网页标签规范作了完整说明,如元素标签的功能、属性以及如何使用等。有了基本网页制作能力,如何让网页更出色,版面更富变化、更易维护管理,那就得靠CSS帮忙了。《HTML5+CSS3精致范例辞典(全彩印刷)》还详细解说了最新CSS3的样式元素,除了说明......一起来看看 《HTML5+CSS3精致范例辞典》 这本书的介绍吧!