import pycurl
pycurl.version
# libcurl/7.29.0 GnuTLS/2.12.23 zlib/1.2.7 libidn/1.25 librtmp/2.3
c = pycurl.Curl()
c.setopt(pycurl.TIMEOUT_MS, 1000)
c.setopt(pycurl.URL, 'http://example.com/')
c.perform()
# ok
c = pycurl.Curl()
c.setopt(pycurl.URL, 'http://example.com/')
c.setopt(pycurl.TIMEOUT_MS, 999)
c.perform()
# pycurl.error: (28, '')
c = pycurl.Curl()
c.setopt(pycurl.URL, 'http://example.com/')
c.setopt(pycurl.TIMEOUT_MS, 999)
c.setopt(pycurl.NOSIGNAL, 1)
c.perform()
# ok again
有人可以解釋爲什麼超過1秒的超時失敗,並且nosignal使其再次工作?pycurl nosignal&timeout <= 999ms
我看到一些參考文獻說,當超時<1s時,curl忽略超時。我稍後再檢查一次。 – 2014-03-21 10:42:10
我剛剛嘗試使用TIMEOUT_MS == 500捲曲,並在500毫秒後正確超時。 – user1202136 2014-03-24 09:57:06
您使用哪個名稱解析器,系統標準/ c-ares/threaded?如果你使用系統標準,你可以發佈你的代碼嗎?參考添加,順便說一句。 – 2014-03-25 02:25:08