以下是一个使用GuzzleHttp进行并发请求的示例。该示例使用GuzzleHttp的Promise API,因此可以同时发出多个请求,并在所有请求完成后处理响应。

require 'vendor/autoload.php';

use GuzzleHttp\Client;
use GuzzleHttp\Promise;

$client = new Client();

$promises = [
    'google' => $client->getAsync('https://www.google.com'),
    'yahoo' => $client->getAsync('https://www.yahoo.com'),
    'bing' => $client->getAsync('https://www.bing.com')
];

$results = Promise\unwrap($promises);

foreach ($results as $key => $result) {
    echo $key . ': ' . $result->getStatusCode() . "\n";
}

该示例创建了一个名为 $promises 的数组,其中包含三个异步请求。每个请求都使用 $client->getAsync 方法异步发出,然后将结果存储在 $promises 数组中。

然后,使用 Promise\unwrap 方法等待所有请求完成,并将结果存储在 $results 变量中。最后,使用 foreach 循环遍历 $results 数组,并输出每个请求的状态码。

请注意,该示例假设您已经安装了 GuzzleHttp。如果没有,请先使用 Composer 安装它:

composer require guzzlehttp/guzzle
使用GuzzleHttp写一个并发请求demo

原文地址: https://www.cveoy.top/t/topic/bYFD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录