zatxm/arequest

PHP的curl简单封装请求,支持类似Python的requests库以支持session上下文

3.3.0 2023-11-28 14:28 UTC

This package is auto-updated.

Last update: 2024-09-28 16:15:34 UTC


README

arequest是PHP的curl简单封装请求,支持类似Python的requests库以支持session上下文关联请求,重定向也支持此功能,支持原生模拟浏览器TLS/JA3指纹的验证

使用说明

  • 安装
    composer require zatxm/arequest
  • 2.0.0版本开始支持原生模拟浏览器TLS/JA3指纹的验证
    要启用此功能,请访问curl-impersonate下载安装,最简单的方法是下载编译好的二进制包并将其放置在可执行目录中,如/usr/local/bin
    $option['cmdopt'] = '/usr/local/bin/curl_edge101'; //此值为curl-impersonate执行脚本位置,根据实际情况调整
    此功能将直接返回响应头和cookie
  • 简单的通信请求
 $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指纹的验证
 $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的通信请求
 $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);