Почему при возникновении тайм-аута Session.get () в Requests генерирует request.exceptions.ConnectionError, а не request.exceptions.Timeout? - PullRequest
0 голосов
/ 19 апреля 2020

Я отправляю запрос GET с использованием Session следующим образом:

with requests.Session() as rs:
    with rs.get(url, params={}, headers={}, auth=self.auth, verify=self.ssl_verify, timeout=30) as r:
        ...

Я ожидал возникновения ошибки requests.exceptions.Timeout, когда истек timeout=30, но вместо этого requests.exceptions.ConnectionError было поднято:

Traceback (most recent call last):
  File "/Users/nlykkei/projects/atlassian-watchdog/confluence/confluence.py", line 118, in __producer
    with rs.get(url, params={}, headers={}, auth=self.auth, verify=self.ssl_verify, timeout=30) as r:
  File "/Users/nlykkei/projects/atlassian-watchdog/lib/python3.7/site-packages/requests/sessions.py", line 543, in get
    return self.request('GET', url, **kwargs)
  File "/Users/nlykkei/projects/atlassian-watchdog/lib/python3.7/site-packages/requests/sessions.py", line 530, in request
    resp = self.send(prep, **send_kwargs)
  File "/Users/nlykkei/projects/atlassian-watchdog/lib/python3.7/site-packages/requests/sessions.py", line 683, in send
    r.content
  File "/Users/nlykkei/projects/atlassian-watchdog/lib/python3.7/site-packages/requests/models.py", line 829, in content
    self._content = b''.join(self.iter_content(CONTENT_CHUNK_SIZE)) or b''
  File "/Users/nlykkei/projects/atlassian-watchdog/lib/python3.7/site-packages/requests/models.py", line 758, in generate
    raise ConnectionError(e)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='confluence.danskenet.net', port=443): Read timed out.

В документации четко указано, что:

Если время ожидания истекло, возникает исключение тайм-аута.

Итак, почему requests.exceptions.ConnectionError повышен в моем случае?

...