使用curl_init做接口請求卡頓的原因可能有多種,可以嘗試以下優化方法:
curl_setopt($ch, CURLOPT_TIMEOUT, 10); // 設置請求超時時間為10秒
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); // 設置連接超時時間為5秒
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0); // 設置HTTP協議版本為2.0
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3');
curl_setopt($ch, CURLOPT_ENCODING, 'gzip'); // 設置使用gzip壓縮
curl_setopt($ch, CURLOPT_DNS_CACHE_TIMEOUT, 3600); // 設置DNS緩存時間為1小時
$mh = curl_multi_init();
$handles = array($ch1, $ch2, ...); // 多個curl資源句柄
foreach ($handles as $ch) {
curl_multi_add_handle($mh, $ch);
}
$running = null;
do {
curl_multi_exec($mh, $running);
} while ($running > 0);
curl_multi_close($mh);
通過以上優化方法,可以嘗試提高curl_init做接口請求的效率和性能。根據實際情況,可能需要結合具體的接口、網絡環境和服務器設置等因素進行調整和優化。