[x] [系统调用耗时时间] 37.230930089951并发要求

Guzzle是一个PHP的HTTP客户端,用来轻而易举地发送要求,并集成到我们的WEB做事上。

接口大略:构建查询语句、POST要求、分流上传下载大文件、利用HTTP cookies、上传JSON数据等等。

发送同步或异步的要求均利用相同的接口。

httpphp请求PHP若何并行异步处置HTTP要求 Webpack

利用PSR-7接口来要求、相应、分流,许可你利用其他兼容的PSR-7类库与Guzzle共同开拓。

抽象了底层的HTTP传输,许可你改变环境以及其他的代码,如:对cURL与PHP的流或socket并非重度依赖,非壅塞事宜循环。

中间件系统许可你创建构成客户端行为。

这里可以利用Promise和异步要求来同时发送多个要求。

安装

compsoer require guzzlehttp/guzzle

伪代码

<?php/ @desc go.php @date 2024/5/18 18:08 /declare(strict_types=1);require_once __DIR__ . &#39;/../vendor/autoload.php';use GuzzleHttp\Client;use GuzzleHttp\Promise;$requestData = [ 'username' =&gt; '开源技能小栈', 'age' => 24];$url = 'http://127.0.0.1:8888/index/sync';$header = [ 'Authorization' => 'Bearer xxxxxxxxxxxx'];$timeOne = microtime(true);$client = new Client(['verify' => false]);for ($i = 0; $i < 100; $i++) { $promises[$i] = $client->postAsync($url, ['headers' => $header, 'json' => $requestData]);}$responses = Promise\Utils::unwrap($promises);foreach ($responses as $key => $response) { echo '【相应状态码】 : ' . $response->getStatusCode() . "\n";}$timeTwo = microtime(true);echo '[x] [系统调用耗时时间] ' . ($timeTwo - $timeOne) . PHP_EOL;

调用输出,可以看出循环要求100次,总耗时:10.41秒

【相应状态码】 : 200....【相应状态码】 : 200[x] [系统调用耗时时间] 10.412175893784

更多理解guzzlephp官方文档:https://docs.guzzlephp.org/en/stable/quickstart.html