zatxm/yrequest
Composer 安装命令:
composer require zatxm/yrequest
包简介
PHP's curl simply encapsulates requests and supports requests libraries similar to python to support session context
README 文档
README
yrequest是php的curl简单封装请求,支持类似python的requests库支持session上下文关联请求,重定向也支持此功能,支持并发请求,支持原生模拟浏览器TLS/JA3指纹的验证
使用说明
-
安装
composer require zatxm/yrequest (2.0+版本要求php>=8.0)
-
支持原生模拟浏览器TLS/JA3指纹的验证
要开启此功能,前往curl-impersonate下载安装,最简单的就是下载编译号的二进制包直接放到可以直接运行的目录如/usr/local/bin
$option['cmdopt'] = '/usr/local/bin/curl_edge101'; //此值为curl-impersonate执行脚本位置,根据实际情况调整
此功能会直接返回响应头部和cookie
测试发现此功能不支持响应流式持续返回数据,会一次性返回数据 -
简单的通信请求
<?php use Zatxm\YRequest\Curl; $curl = Curl::boot(); $url = 'http://xxxx'; $params = ['a'=>'aaa', 'b'=>'bbb']; $headers = ['a'=>'aaa', 'b'=>'bbb']; $cookies = ['a'=>'aaa', 'b'=>'bbb']; // option目前支持选项如下: // async=1异步 // nobody=1不返回响应内容,cmdopt不支持此配置 // resheader=1返回响应头部,cmdopt一直返回 // rescookie=1返回响应cookie,cmdopt一直返回 // timeout=60设置通信超时时间秒数,默认30 // followlocation=1是否重定向,cmdopt不支持此配置 // cmdopt=curl_edge101支持原生模拟浏览器TLS/JA3指纹的验证 // source=[]原生curl_multi_setopt配置,可能会被上面设置覆盖 $option = ['nobody'=>1, 'resheader'=>1]; $res = $curl->url($url) ->method('POST') ->params($params) ->header($headers) ->cookie($cookies) ->option($option) ->go(); if (CurlErr::is($res)) { print_r($res); exit; } print_r($res);
-
支持同个session的通信请求
<?php use Zatxm\YRequest\CurlOfSession; $curl = CurlOfSession::boot(); $url1 = 'http://xxxx'; $params = ['a'=>'aaa', 'b'=>'bbb']; $headers = ['a'=>'aaa', 'b'=>'bbb']; $cookies = ['a'=>'aaa', 'b'=>'bbb']; $option = ['nobody'=>1, 'resheader'=>1]; $res = $curl->url($url) ->method('POST') ->params($params) ->header($headers) ->cookie($cookies) ->option($option) ->go(); if (CurlErr::is($res)) { print_r($res); exit; } print_r($res); $url2 = 'http://xxxx'; $params = ['a'=>'aaa', 'b'=>'bbb']; $headers = ['a'=>'aaa', 'b'=>'bbb']; $cookies = ['a'=>'aaa', 'b'=>'bbb']; $option = ['nobody'=>1, 'resheader'=>1]; $res = $curl->url($url) ->method('POST') ->params($params) ->header($headers) ->cookie($cookies) ->option($option) ->go(); if (CurlErr::is($res)) { print_r($res); exit; } print_r($res);
-
支持并发通信请求
每个各种multiOtion请求参数和单个Curl请求参数大致相同
<?php use Zatxm\YRequest\Murl; $multiOtion = [ [ 'url' => 'https://xx.xx.xx', 'params' => ['a'=>'aaa', 'b'=>'bbb'], 'header' => ['a'=>'aaa', 'b'=>'bbb'], 'cookie' => ['a'=>'aaa', 'b'=>'bbb'], 'option' => ['nobody'=>1, 'resheader'=>1] ], ['url' => 'https://xx.xx.xx'], ['url' => 'https://xx.xx.xx'], ['url' => 'https://xx.xx.xx'], ['url' => 'https://xx.xx.xx'], ['url' => 'https://xx.xx.xx'], ['url' => 'https://xx.xx.xx'], ['url' => 'https://xx.xx.xx'] ]; $murl = Murl::boot(); $res = $murl->multiOtion($multiOtion)->go(); print_r($res);
zatxm/yrequest 适用场景与选型建议
zatxm/yrequest 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 348 次下载、GitHub Stars 达 1, 最近一次更新时间为 2024 年 12 月 02 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「curl」 「http」 「http client」 「client」 「web service」 「session」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 zatxm/yrequest 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 zatxm/yrequest 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 zatxm/yrequest 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
cURL and cURL based Soap-Client for PHP
repository php library
Simple cURL wrapper
Mock PSR-18 HTTP client
A fluent PHP CURL wrapper
Asynchronous MQTT client built on React
统计信息
- 总下载量: 348
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 11
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-12-02