php curl請求超時,設定毫秒級解決

2022-03-22 23:48:14 字數 1509 閱讀 2446

問題背景

curl_setopt($ch, curlopt_connecttimeout_ms, 300

);curl_setopt($ch, curlopt_timeout_ms,

500);

問題現象

所有呼叫此**的介面都響應超時,並且響應時間極短

問題解決經過

在網上查資料說要設定這個毫秒級別的超時才會生效:

curl_setopt ( $ch, curlopt_nosignal, true);

於是本地測試,發現毫無影響:

然後直接在test01上把超時時間加大為一秒以上,發現響應成功

然後改回來,加上那行**,響應成功

問題結論

如果要支援毫秒級別的超時設定必須加

curl_setopt ( $ch, curlopt_nosignal, true);

如果只是

curl_setopt($ch, curlopt_connecttimeout_ms, 300

);curl_setopt($ch, curlopt_timeout_ms,

500);

將直接返回超時【但是, 我們卻發現, 在我們的centos伺服器上, 

當你設定了小於1000ms的超時以後, curl不會發起任何請求,

而直接返回超時錯誤(timeout reached 28)】,這是php的坑,資深者直接閱讀這個

timeout支援毫秒數在curl 7.16.2中被加入,從php 5.2.3起可使用。

專案**

/*

* * 伺服器通過get請求獲得內容

* @author duke

* @param string $url 請求的url,拼接後的

* @return string 請求返回的內容

php curl 設定超時

php curl超時設定詳解 本文介紹下,在php中使用curl時,進行超時設定的詳細方法,大家參考下,希望對大家有一定的幫助.訪問http方式很多,可以使用curl,socket,file get contents 等方法。在訪問http時,需要考慮超時的問題。一 curl 訪問http curl...

PHP curl 超時時間設定

curlopt timeout好理解,就是整個curl請求過程 http request response 的超時限制,以秒為單位,設定為0則無限制。curlopt connecttimeout比較難理解,目前確認的是,這是curl請求過程中的一小部分,因此必須要設得比curlopt timeout...

PHPCurl的毫秒超時的乙個」Bug」

最近我們的服務在公升級php使用的libcurl,期望新版本的libcurl支援毫秒級的超時,從而可以更加精細的控制後端的介面超時,從而提高整體響應時間.但是,我們卻發現,在我們的centos伺服器上,當你設定了小於1000ms的超時以後,curl不會發起任何請求,而直接返回超時錯誤 timeout...