在PHP中创建异步HTTP请求可以使用以下方法:
Guzzle是一个流行的PHP HTTP客户端库,可以轻松地发送异步HTTP请求。首先,需要安装Guzzle库:
composer require guzzlehttp/guzzle
然后,可以使用以下代码发送异步HTTP请求:
require 'vendor/autoload.php';
use GuzzleHttp\Client;
use GuzzleHttp\Promise\Utils;
$client = new Client(['base_uri' => 'https://api.example.com']);
// 创建一个Promise对象
$promises = [
$client->getAsync('/endpoint1'),
$client->getAsync('/endpoint2'),
];
// 等待所有请求完成
$results = Utils::unwrap($promises);
// 处理结果
foreach ($results as $result) {
echo $result->getBody() . PHP_EOL;
}
cURL是一个广泛使用的C语言库,可以用于发送异步HTTP请求。以下是一个使用cURL库的示例:
$ch1 = curl_init('https://api.example.com/endpoint1');
$ch2 = curl_init('https://api.example.com/endpoint2');
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
$mh = curl_multi_init();
curl_multi_add_handle($mh, $ch1);
curl_multi_add_handle($mh, $ch2);
$active = null;
do {
$status = curl_multi_exec($mh, $active);
$info = curl_multi_info_read($mh);
if (false !== $info) {
echo curl_multi_getcontent($info['handle']) . PHP_EOL;
curl_multi_remove_handle($mh, $info['handle']);
}
} while ($active && $status == CURLM_OK);
curl_multi_close($mh);
这两种方法都可以在PHP中创建异步HTTP请求。Guzzle库更易于使用,但cURL库可以提供更高级的控制和性能。
领取专属 10元无门槛券
手把手带您无忧上云