点击查看代码
<?php
// 要测试的接口 URL
$apiUrl = 'https://example.com/api';
// 并发请求数
$concurrentRequests = 10;
// 创建 cURL 多个句柄
$curlHandles = [];
for ($i = 0; $i < $concurrentRequests; $i++) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 在这里可以设置其他 cURL 选项,如请求方法、请求头等
$curlHandles[] = $ch;
}
// 创建 cURL 多个句柄的批处理
$multiHandle = curl_multi_init();
foreach ($curlHandles as $ch) {
curl_multi_add_handle($multiHandle, $ch);
}
// 执行并发请求
$active = null;
do {
$mrc = curl_multi_exec($multiHandle, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && $mrc == CURLM_OK) {
if (curl_multi_select($multiHandle) != -1) {
do {
$mrc = curl_multi_exec($multiHandle, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
// 获取响应并处理
$responses = [];
foreach ($curlHandles as $ch) {
$responses[] = curl_multi_getcontent($ch);
curl_multi_remove_handle($multiHandle, $ch);
}
curl_multi_close($multiHandle);
// 处理响应数据,可以输出或记录
foreach ($responses as $response) {
// 处理响应数据的逻辑
// 例如,您可以在这里检查响应是否满足预期的条件,记录响应时间等
echo $response;
}
// 注意:这只是一个简单的示例,您可能需要根据实际需要进行调整和优化。
?>