YurunHttp 是開源的 PHP HTTP 類庫,支持鏈式操作,簡單易用。
支持所有常見的 GET、POST、PUT、DELETE、UPDATE 等請求方式,支持上傳下載、設置和讀取 header、Cookie、請求參數、失敗重試、限速、代理、證書等。
3.x 版完美支持 Curl、Swoole 協程。
我們有完善的在線技術文檔:http://doc.yurunsoft.com/YurunHttp
API 文檔:https://apidoc.gitee.com/yurunsoft/YurunHttp
Gitee:https://gitee.com/yurunsoft/YurunHttp
Github:https://github.com/Yurunsoft/YurunHttp
git倉庫中test目錄里是示例代碼!
新增:
新增 CookieManager,用於管理一個實例下的會話。現在同一個HttpRequest類實例,會自動管理 Cookie。
增加測試用例(PHP5.4 - PHP7.3)、示例代碼
優化:
現在只有狀態碼為301、302、303,才更改重定向請求方法為 GET
優化 StatusCode 類
Swoole 重定向地址的 host、port、scheme 與上一個地址保持一致的話,復用 $client
同一個 HttpRequest 對象重複請求時,Curl 資源不再重新 init
Uri->getPort() 不再根據協議自動返回預設埠
新增 Uri::getServerPort() 方法獲取埠,支持獲取預設
Uri::getDomain() 方法改為靜態方法
優化 close()、__destruct()
Curl CURLOPT_COOKIEJAR 默認值改為 php://memory,不再寫入文件
優化 Curl header 處理性能
修復:
本項目可以使用composer安裝,遵循psr-4自動載入規則,在你的 composer.json
中加入下面的內容
{ "require": { "yurunsoft/yurun-http": "~3.1" } }
然後執行 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(); }
具體詳見examples
目錄中的示例代碼
[admin
]