歡迎您光臨本站 註冊首頁

YurunHttp v3.5.0 & v4.0.0 發布,新增支持併發批量請求

←手機掃碼閱讀     admin @ 2020-01-22 , reply:0

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。請用戶選擇適合自己的版本使用。

更新日誌(v3.5.0):

* 最低支持 PHP 版本提升為 5.5

* 新增支持 Curl Handler 併發請求

* HttpRequest 新增 method 方法和屬性,用於設置默認預設請求方法

更新日誌(v4.0.0):

* 最低支持 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

本項目可以使用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();

PSR-7 請求構建

 

<?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);

Swoole 協程模式


<?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();
}

WebSocket Client


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 ]

來源:OsChina
連結:https://www.oschina.net/news/112957/yurunhttp-3-5-0-4-0-0-released
YurunHttp v3.5.0 & v4.0.0 發布,新增支持併發批量請求已經有230次圍觀

http://coctec.com/news/all/show-post-223564.html