Опция повторной попытки библиотеки в Pycurl - PullRequest
0 голосов
/ 23 апреля 2020

Есть ли в 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
...