curl毫秒超時使用的坑


升級后的libcurl已經支持了毫米級別的超時。但是使用的時候還有一個坑需要注意跨過去 。

libcurl如果檢查到設置的timeout < 1s 那么會直接發出一個信號說 "已經超時了"

如果要使用毫秒超時 那么還需要關閉這個signal功能,即設置中需要多一個

curl_setopt($ch, CURLOPT_NOSIGNAL, 1);

但是,這樣域名解析就不會受超時控制。也就是說,有可能被域名解析卡住很長時間,使用時需要注意。

然后
curl_setopt($ch, CURLOPT_TIMEOUT_MS, 200);

這樣就可以控制 超時為 200ms了

其他的毫秒超時同理。

 

使用示例:

//以秒為單位:
curl_setopt($ch, CURLOPT_TIMEOUT, 1); //以毫秒為單位:在CURL7.16.2中被加入,從PHP5.2.3起可使用
curl_setopt($ch, CURLOPT_NOSIGNAL, true); curl_setopt($ch, CURLOPT_TIMEOUT_MS, 200);

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM