YurunHttp v3.5.0 & v4.0.0 发布,新增支持并发批量请求
YurunHttp 是开源的 PHP HTTP 类库,支持链式操作,简单易用。
支持所有常见的 GET、POST、PUT、DELETE、UPDATE 等请求方式,支持 Http2、WebSocket、浏览器级别 Cookies 管理、上传下载、设置和读取 header、Cookie、请求参数、失败重试、限速、代理、证书等。
git 仓库中 examples 目录里是示例代码!
鉴于功能需要,实际的 PHP 版本使用情况,现将 v3.5.0 的 PHP 版本提升为 5.5,v4.0.0 的 PHP 版本提升为 7.1。请用户选择适合自己的版本使用。
更新日志(v3.5.0):
* 最低支持 PHP 版本提升为 5.5
* 新增支持 Curl Handler 并发请求
* HttpRequest 新增 method 方法和属性,用于设置默认缺省请求方法
更新日志(v4.0.0):
* 最低支持 PHP 版本提升为 7.1
* 新增支持 Swoole Handler 并发请求
并发批量请求
use \Yurun\Util\YurunHttp\Co\Batch; $result = Batch::run([ (new HttpRequest)->url('https://www.imiphp.com'), (new HttpRequest)->url('https://www.yurunsoft.com'), ]); var_dump($result[0]->getHeaders(), strlen($result[0]->body()), $result[0]->getStatusCode()); var_dump($result[1]->getHeaders(), strlen($result[1]->body()), $result[1]->getStatusCode());
重大版本更新日志
每个小版本的更新日志请移步到 Release 查看
v4.0.0 新增支持 Swoole
并发批量请求 (PHP >= 7.1)
v3.5.0 新增支持 Curl
并发批量请求 (PHP >= 5.5)
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": "^4.0.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
目录中的示例代码
相关地址:
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Service Mesh在百度网盘数万后端的实践落地
1 背景 起初,在网盘快速发展期,为了快速上线,采用了服务单体化 + 主干开发模式进行研发,随着用户规模爆发式的增长以及产品形态的丰富,单体化的不足就体现出来了,于是架构上采用了微服务架构,开始对业务逻辑进行拆分部署。 服务拆分之后,也引入了新的问题,具体如下: **请求路由:**服务部署从物理机向虚拟化方式迁移中,有大量的切流量操作,需要相关的上游都进行升级上线修改,效率低下 **故障管理:**单实例异常、服务级别异常、机房故障异常、网络异常等,严重缺失或者不完善,同时配套的故障定位也没有,服务稳定性不足 **流量转发:**不同的服务采用了不同的框架,甚至裸框架,策略不完善,导致负载不均衡 **研发效率:**相同的功能点,需要在不同的语言框架上实现一次,浪费人力,同时升级周期比较长,收敛效率低 2 解决方案 - UFC 2.1 UFC 发展史 为了解决这个问题,从2015年底开始思考解决方案,确定了解决问题的核心在于管控请求流量,在2016年开始自研网络流量转发中间件 - UFC(Unified Flow Control),业务通过同机部署的agent进行服务通信,相关的发展史如下:...
- 下一篇
https://mp.weixinbridge.com/mp/wapredirect?url=https%3A%2F%2Fpromotion...
阿里云AnalyticDB for PostgreSQL(以下简称 ADB PG,即原HybridDB for PostgreSQL)为基于PostgreSQL内核的MPP架构的实时数据仓库服务,可以支持复杂ETL任务,也支持高性能在线查询,同阿里云生态紧密结合。 AWS 的Redshift同样为基于PostgreSQL内核引擎的MPP数据仓库服务器,在AWS被广泛作为数据仓库使用。ADB PG和Redshift从架构到语法上同Redshift高度兼容。本文重点介绍两个数仓平台如何进行迁移。 产品架构比较 阿里云AnalyticDB for PostgreSQL最新版本 6.0 基于PostgreSQL 9.4构建,Redshift 基于PostgreSQL 8.2版本,相对ADB PG的功能要更加全面,且全面兼容PostgreSQL生
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7设置SWAP分区,小内存服务器的救世主