在我的一個腳本中,我設置了curl超時CURLOPT_CONNECTTIMEOUT_MS,時間爲3000毫秒,但捲曲超時的時間比平均1000毫秒多得多。爲什麼它會這麼早就超時?當我將超時設置爲3000ms時,爲什麼CURL會在1000毫秒內超時?
3
A
回答
5
我相信你看到的超時是CURL操作超時,而不是連接超時。這兩個是不同的。
CURLOPT_TIMEOUT
(和CURLOPT_TIMEOUT_MS
對於毫秒值)控制CURL在連接後執行的工作超時。 CUROPT_CONNECTTIMEOUT
(和CUROPT_CONNECTTIMEOUT_MS
)控制初始連接超時(DNS查找,建立連接等)
如果我是正確的,那麼如果你設置CURLOPT_TIMEOUT大於1,你會發現,你的超時沒有按」再次以1000ms行程。
+0
馬特吉布森,你救了一天:) – Kumar 2011-06-02 09:55:35
0
檢查CURL和PHP安裝的版本。在cURL 7.16.2中添加了CURLOPT_CONNECTTIMEOUT_MS。自PHP 5.2.3起可用。 http://php.net/manual/en/function.curl-setopt.php
相關問題
- 1. 在npgsql中設置超時毫秒
- 2. ASP.NET爲什麼會話超時,超時SessionState的設置
- 3. 爲什麼在設置$ _SESSION值時會看到執行超時?
- 4. 爲什麼ServerHMLHttp在XMLHttp不超時時會超時?
- 5. Python和90毫秒超時
- 6. 約15秒後NSMutableURLRequest超時。超時設置在240秒
- 7. 爲什麼查詢在超時限制內超時?
- 8. 會話超時後,什麼設置System.Security.Principal.Identity.IsAuthenticated?
- 9. 爲什麼設置窗體身份驗證超時時間超過會話超時?
- 10. 爲什麼Socket.Receive超時就當超時時間設置爲無限半關閉的連接?
- 11. 如何爲IISExpress設置會話超時
- 12. 爲什麼設置爲SqlServer時會話超時工作不正常?
- 13. 超時設置爲操作
- 14. AngularJS:爲$ evalAsync設置超時
- 15. 爲av_read_frame設置超時
- 16. 當超時設置爲無限時間時發生超時異常
- 17. 爲什麼在不是超時時收到「操作超時」?
- 18. django會議在10秒內超時
- 19. 爲什麼promela模型會超時?
- 20. 爲什麼數據庫會超時?
- 21. 爲什麼Java線程不會超時
- 22. 將時間轉換爲秒+毫秒秒
- 23. 在PHP中設置Curl的超時值
- 24. 當我設置CurrentCulture時,爲什麼時區不會更改?
- 25. ASP.Net(MVC)在會話超時時設置了什麼狀態碼?
- 26. cURL錯誤28 - x毫秒後連接超時
- 27. 如何解決「60051毫秒後連接超時」cURL與PHP?
- 28. Bing語音API cURL> 408請求超時(> 14000毫秒)
- 29. 爲http http客戶端設置了什麼超時時間?
- 30. 我可以爲BufferReader設置超時嗎?
你確定它的實際連接超時,而不是操作(即CURLOPT_TIMEOUT_MS,而不是CURLOPT_CONNECTTIMEOUT_MS?) – 2011-06-02 09:20:44
matt,我記錄所有失敗的CURL調用,這裏是一個日誌條目'Curl error:操作超時後1000個毫秒,接收0個字節,這裏是代碼'curl_setopt($ ch,CURLOPT_CONNECTTIMEOUT_MS,3000); curl_setopt($ ch,CURLOPT_CONNECTTIMEOUT,3); ',即使'CURLOPT_CONNECTTIMEOUT_MS'不被尊重'CURLOPT_CONNECTTIMEOUT'應該被遵守。 – Kumar 2011-06-02 09:31:31
是的,但我所要求的是CURLOPT_TIMEOUT/CURLOPT_TIMEOUT_MS,而不是CURLOPT_CONNECTTIMEOUT/CURLOPT_CONNECTTIMEOUT_MS。也就是說,實際的*操作*超時,而不僅僅是連接超時。一對控制* connection *超時,這是您設置的,另一對控制* operation *超時,即連接後實際獲取數據的超時。 – 2011-06-02 09:34:53