【发布时间】:2020-04-23 19:28:24
【问题描述】:
我可以在 Pycurl 中设置重试选项吗?我想专门针对 DNS 解析失败重试。如果可能的话,我不希望自己重试。
curl --retry 3 "www.google.com"
Curl manpage 有关于 --retry 选项的详细信息。但我在 curl API 文档中没有看到等效的 setopt。这就是 Pycurl 中没有重试选项的原因吗?
我查看了this SO 问题。这是重试的唯一方法吗?
我当前的代码是这样的:
c = pycurl.Curl()
b = six.BytesIO()
c.setopt(pycurl.WRITEFUNCTION, b.write)
c.setopt(pycurl.URL, "www.google.com")
c.setopt(pycurl.POST, 1)
c.setopt(pycurl.SSL_VERIFYHOST, 2)
c.setopt(pycurl.SSL_VERIFYPEER, 1)
c.setopt(pycurl.VERBOSE, 1)
retries = 3
while retries:
try:
c.perform()
except as e:
if 'Could not resolve' in str(e):
retries -= 1
continue
# log exception e and exit here
【问题讨论】: