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。請用戶選擇適合自己的版本使用。
* 最低支持 PHP 版本提升為 5.5
* 新增支持 Curl Handler 併發請求
* HttpRequest 新增 method 方法和屬性,用於設置默認預設請求方法
* 最低支持 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安裝,遵循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();
<?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);
<?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(); }
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
目錄中的示例代碼
相關地址:
[admin
]