当前位置: 首页 > 后端技术 > PHP

YurunHttpv4.2.0高性能Http客户端

时间:2023-03-29 20:04:51 PHP

用于智能识别Swoole场景YurunHttp是一个开源的PHPHTTP类库,支持链式操作,简单易用。支持GET、POST、PUT、DELETE、UPDATE等所有常见请求方式,支持Http2、WebSocket、浏览器级Cookies管理、上传下载、设置读取header、Cookie、请求参数、失败重试、速度limit、proxy、certificates等。支持Curl和Swoole环境智能识别兼容。API文档:https://apidoc.gitee.com/yuru...Github:https://github.com/Yurunsoft/...Gitee:https://gitee.com/yurunsoft/Y...gitrepository在示例目录中是示例代码!更新日志(v4.2.0):重构Swoole处理器,大幅提升并发请求性能降低PHP版本依赖至5.5更新日志(v4.1.0):实现场景智能识别,自动选择适合Curl/的处理器性能测试Swoole环境循环1W请求测试排名名时间(单位:秒)环境1yurunhttp-swoole1.69sSwoole2yurunhttp-curl2.08sCurl3guzzle2.71sCurl4saber2.77sSwoole并发1W请求测试排名名时间(单位:秒)环境1yurunhttp-swoole1.21sSwoole2saber1.47sSwoole3curl3yuruncurl7.25.39sCurl测试仓库:https://github.com/Yurunsoft/...视频地址:https://www.bilibili.com/video...大版本更新日志请移至各小版本更新日志SteptoRelease查看Swoole处理器v4.2.0重构,并发请求性能大幅提升(PHP版本依赖降低至>=5.5)v4.1.0实现智能识别scenarios,自动选择适合Curl/Swoole环境的处理器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新增支持SwooleWebSocket客户端v3.1.0引入浏览器级Cookies管理v3.0.0新增支持Swoole协程v2.0.0黑历史,不告诉你v1.3.1支持Composerv1.0-1.3初始版本迭代Composer这个项目可以使用composer安装,遵循psr-4自动加载规则,在你的composer.json中添加如下内容{"require":{"yurunsoft/yurun-http":"^4.2.0"}}然后执行composerupdate安装完成后,可以使用include"vendor/autoload.php";自动加载类。(ps:不要忘了namespace)使用方法简单单调ua('YurunHttp')->get('http://www.baidu.com');echo'html:',PHP_EOL,$response->body();并发批量请求use\Yurun\Util\YurunHttp\Co\Batch;$result=Batch::run([(newHttpRequest)->url('https://www.imiphp.com'),(newHttpRequest)->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());WebSocketClientYurunHttp::setDefaultHandler(\Yurun\Util\YurunHttp\Handler\Swoole::class);go(function(){$url='ws://127.0.0.1:1234/';$http=newHttpRequest;$client=$http->websocket($url);if(!$client->isConnected()){thrownew\RuntimeException('Connect失败');}$client->send('数据');$recv=$client->recv();var_dump('recv:',$recv);$client->close();});Http2全双工使用$uri=newUri('https://wiki.swoole.com/');//客户端初始化和连接$client=new\Yurun\Util\YurunHttp\Http2\SwooleClient($uri->getHost(),Uri::getServerPort($uri),'https'===$uri->getScheme());$client->connect();//请求构建$httpRequest=newHttpRequest;$request=$httpRequest->header('aaa','bbb')->buildRequest($uri,['date'=>$i,],'POST','json');for($i=0;$i<10;++$i){go(function()use($client,$request){//send(支持多协程执行)$streamId=$client->send($request);var_dump('send:'.$streamId);//接收(支持多协程执行)$response=$client->recv($streamId,3);$content=$response->body();var_dump($response);});}具体参见examples目录下的示例代码

最新推荐
猜你喜欢