Есть ли в Pycurl опция повтора, которую я могу установить? Я хочу повторить попытку при сбое разрешения DNS. Я предпочитаю не делать свою собственную повторную попытку, если это возможно.
curl --retry 3 "www.google.com"
Curl manpage содержит подробную информацию о опции --retry
. Но я не вижу эквивалента setopt
в документации curl API . Поэтому в Pycurl нет возможности повторить попытку?
Я смотрел на этот ТАК вопрос. Это единственный способ повторить попытку?
Мой текущий код такой:
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