Requests: рдЕрдзрд┐рдХрддрдо-рдкреБрди: рдкреНрд░рдпрд╛рд╕-рдкрд╛рд░ рдХрд┐рдП рдЧрдП рдЕрдкрд╡рд╛рдж рднреНрд░рдорд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 15 рдлрд╝рд░ре░ 2013  ┬╖  39рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: psf/requests

рдирдорд╕реНрддреЗ,
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

>>> requests.get('http://localhost:1111')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "requests/api.py", line 55, in get
    return request('get', url, **kwargs)
  File "requests/api.py", line 44, in request
    return session.request(method=method, url=url, **kwargs)
  File "requests/sessions.py", line 312, in request
    resp = self.send(prep, **send_kwargs)
  File "requests/sessions.py", line 413, in send
    r = adapter.send(request, **kwargs)
  File "requests/adapters.py", line 223, in send
    raise ConnectionError(e)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=1111): Max retries exceeded with url: / (Caused by <class 'socket.error'>: [Errno 61] Connection refused)

(рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдкреЛрд░реНрдЯ 1111 рдкрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╕реБрди рд░рд╣рд╛ рд╣реИ)

рдЕрдкрд╡рд╛рдж рдХрд╣рддрд╛ рд╣реИ "рдЕрдзрд┐рдХрддрдо рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдкрд╛рд░ рд╣реЛ рдЧрдП"ред рдореБрдЭреЗ рдпрд╣ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд▓рдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдХреЛрдИ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕-рд╕рдВрдмрдВрдзрд┐рдд рдкреИрд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВ рдкреБрдирд░реНрдкреНрд░рдпрд╛рд╕-рдЧрдгрдирд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рдвреВрдВрдв рдкрд╛ рд░рд╣рд╛ рд╣реВрдВред рдХреЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ urllib3 рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкрд░рд┐рд╡рд╣рди рд╣реИ, рдФрд░ рдЗрд╕реЗ max_retries = 0 рдХреЗ рд╕рд╛рде рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЗрд╕рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ)ред рдФрд░ рдЕрдиреБрд░реЛрдз рдХреЗрд╡рд▓ рдЕрдкрд╡рд╛рдж рдХреЛ рд▓рдкреЗрдЯрддрд╛ рд╣реИред рддреЛ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдВрдб-рдпреВрдЬрд╝рд░ (рдПрдВрдб-рдбреЗрд╡рд▓рдкрд░) рдХреЛ рднреНрд░рдорд┐рдд рдХрд░рддрд╛ рд╣реИ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдХреБрдЫ рдмреЗрд╣рддрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЦрд╛рд╕рдХрд░ рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХрд╛рдлреА рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рдЕрдиреБрд░реЛрдз рдХрднреА рднреА рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдпрд╣ urllib3 рдХреЗ HTTPConnectionPool рдХреЗ рд▓рд┐рдП рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ = 0 рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ), рдЗрд╕рд▓рд┐рдП рддреНрд░реБрдЯрд┐ HTTPConnectionPool/MaxRetryError рд╕рд╛рдордЧреНрд░реА рдХреЗ рдмрд┐рдирд╛ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдЧреАред рдореБрдЭреЗ рдЕрднреА рддрдХ urllib3 рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдПрд╣рд╕рд╛рд╕ рдирд╣реАрдВ рд╣реБрдЖ, рдЬрдм рдореБрдЭреЗ рджреЛрдиреЛрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдЧреЛрддрд╛ рд▓рдЧрд╛рдирд╛ рдкрдбрд╝рд╛ рддрд╛рдХрд┐ рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рдЪрд▓ рд╕рдХреЗ рдХрд┐ рдпрд╣ рдХрд┐рддрдиреЗ рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рдерд╛:

ConnectionError(MaxRetryError("HTTPSConnectionPool(host='api.venere.com', port=443): \
    Max retries exceeded with url: /xhi-1.0/services/XHI_HotelAvail.json (\
    Caused by <class 'socket.error'>: [Errno 10054] \
    An existing connection was forcibly closed by the remote host)",),)

рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдЕрдкрд╡рд╛рдж рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

ConnectionError(<class 'socket.error'>: [Errno 10054] \
    An existing connection was forcibly closed by the remote host))

рд╕рднреА 39 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЕрдиреБрд░реЛрдз рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдЕрдкрд╡рд╛рдж рдХреЛ рд▓рдкреЗрдЯрддрд╛ рд╣реИред рдореВрд▓ рдЕрдкрд╡рд╛рдж рд╕рдВрджреЗрд╢ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЯреНрд░реЗрд╕рдмреИрдХ рднреНрд░рд╛рдордХ рд╣реИред рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреВрдВрдЧрд╛ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рд╕реБрдзрд╛рд░реЗрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рддреНрд░реБрдЯрд┐ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдСрдЯреЛ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХрд╛рдлреА рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рдЕрдиреБрд░реЛрдз рдХрднреА рднреА рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдпрд╣ urllib3 рдХреЗ HTTPConnectionPool рдХреЗ рд▓рд┐рдП рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ = 0 рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ), рдЗрд╕рд▓рд┐рдП рддреНрд░реБрдЯрд┐ HTTPConnectionPool/MaxRetryError рд╕рд╛рдордЧреНрд░реА рдХреЗ рдмрд┐рдирд╛ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдЧреАред рдореБрдЭреЗ рдЕрднреА рддрдХ urllib3 рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдПрд╣рд╕рд╛рд╕ рдирд╣реАрдВ рд╣реБрдЖ, рдЬрдм рдореБрдЭреЗ рджреЛрдиреЛрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдЧреЛрддрд╛ рд▓рдЧрд╛рдирд╛ рдкрдбрд╝рд╛ рддрд╛рдХрд┐ рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рдЪрд▓ рд╕рдХреЗ рдХрд┐ рдпрд╣ рдХрд┐рддрдиреЗ рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рдерд╛:

ConnectionError(MaxRetryError("HTTPSConnectionPool(host='api.venere.com', port=443): \
    Max retries exceeded with url: /xhi-1.0/services/XHI_HotelAvail.json (\
    Caused by <class 'socket.error'>: [Errno 10054] \
    An existing connection was forcibly closed by the remote host)",),)

рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдЕрдкрд╡рд╛рдж рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

ConnectionError(<class 'socket.error'>: [Errno 10054] \
    An existing connection was forcibly closed by the remote host))

рдпрд╣реА рдЖрджрд░реНрд╢ рд╣реЛрдЧрд╛ред рдореБрджреНрджрд╛ рдЗрди рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рд▓рдкреЗрдЯрдиреЗ рдХрд╛ рд╣реИ рдЬреИрд╕реЗ рд╣рдо рдХрд░рддреЗ рд╣реИрдВред рд╡реЗ рдПрдХ рдорд╣рд╛рди рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдмрдирд╛рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдПрдХ рдЦрд░рд╛рдм рдбрд┐рдмрдЧрд┐рдВрдЧ рдЕрдиреБрднрд╡ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдЕрдВрджрд╛рдЬрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рд╕рднреА рд╕реВрдЪрдирд╛рдУрдВ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦрд╛ рдЬрд╛рдП

рд╣рдореЗрдВ рдЙрд╕ рдорд╛рдорд▓реЗ рдкрд░ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрд╣рд╛рдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ _does_ рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдЕрдкрд╡рд╛рдж рдЙрдкрдпреБрдХреНрдд рд╣реИред

@ рд▓реБрдХрд╛рд╕рд╛ , рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдХреЗрдиреЗрде рдиреЗ рдпрд╣рд╛рдВ рдХрд╣рд╛ рдХрд┐ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рдПрдкреАрдЖрдИ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкреБрдирд░реНрдкреНрд░рдпрд╛рд╕ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред

рдореЗрд░реА рдпреЛрдЬрдирд╛, рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП, рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдиреАрдЪреЗ рдХреА рдУрд░ рд╕рдмрд╕реЗ рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЛ рдкрд╛рд░ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред @benhoyt рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реЙрдХреЗрдЯ рддреНрд░реБрдЯрд┐ рдЕрдкрд╡рд╛рдж рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЕрдиреБрдкрд▓рдмреНрдз рд╣реИред (рдмрд╕ рдпрд╣ рджреЗрдЦрдХрд░ рдХрд┐ рдЙрд╕рдиреЗ рдХреНрдпрд╛ рдЪрд┐рдкрдХрд╛рдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИред)

@gabor рдХрд╛ рдЙрджрд╛рд╣рд░рдг рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред рдЙрдард╛рдП рдЧрдП рдЕрдкрд╡рд╛рдж рдХреЛ рдкрдХрдбрд╝рдХрд░, рдореИрдВрдиреЗ рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд┐рдпрд╛:

>>> e
ConnectionError(MaxRetryError("HTTPConnectionPool(host='localhost', port=1111): Max retries exceeded with url: / (Caused by <class 'socket.error'>: [Errno 111] Connection refused)",),)
>>> e.args
(MaxRetryError("HTTPConnectionPool(host='localhost', port=1111): Max retries exceeded with url: / (Caused by <class 'socket.error'>: [Errno 111] Connection refused)",),)
>>> e.args[0].args
("HTTPConnectionPool(host='localhost', port=1111): Max retries exceeded with url: / (Caused by <class 'socket.error'>: [Errno 111] Connection refused)",)
>>> e.args[0].args[0]
"HTTPConnectionPool(host='localhost', port=1111): Max retries exceeded with url: / (Caused by <class 'socket.error'>: [Errno 111] Connection refused)"
>>> isinstance(e.args[0].args[0], str)
True

рддреЛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣рдо рдХреЗрд╡рд▓ e.args[0].args[0] рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╕рдВрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рднреНрд░рдорд┐рдд рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж @benhoyt рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рд╕реЗ рдХрдо рд╣реИред рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ, рд╣рдо рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рд╡рд┐рд╡рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдкреВрд░реНрдг рдкрд╛рдЧрд▓рдкрди рд╣реЛрдЧрд╛ред

@ рд╕рд┐рдЧреНрдорд╛рд╡рд╛рдпрд░рд╕ 24 , рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдЕрдкрд╡рд╛рджреЛрдВ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдПрдХ рднрдпрд╛рдирдХ рд╡рд┐рдЪрд╛рд░ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, urllib3 рдХрд╛ MaxRetryError рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ reason рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЕрдкрд╡рд╛рдж рд╣реЛрддрд╛ рд╣реИ ( рд╕реНрд░реЛрдд рдХреЛрдб рджреЗрдЦреЗрдВ)ред рддреЛ рдЖрдк e.args[0].reason рд╕рд╛рде рдЬреЛ рдЪрд╛рд╣реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕рд▓рд┐рдП рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЕрдиреБрд╕рд╛рд░, e.args[0].reason рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ socket.error :

>>> requests.get('http://localhost:1111')
Traceback (most recent call last):
  ...
requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=1111): Max retries exceeded with url: / (Caused by <class 'socket.error'>: [Errno 10061] No connection could be made because the target machine actively refused it)
>>> e = sys.last_value
>>> e
ConnectionError(MaxRetryError("HTTPConnectionPool(host='localhost', port=1111): Max retries exceeded with url: / (Caused by <class 'socket.error'>: [Errno 10061] No connection could be made because the target machine actively refused it)",),)
>>> e.args[0]
MaxRetryError("HTTPConnectionPool(host='localhost', port=1111): Max retries exceeded with url: / (Caused by <class 'socket.error'>: [Errno 10061] No connection could be made because the target machine actively refused it)",)
>>> e.args[0].reason
error(10061, 'No connection could be made because the target machine actively refused it')

рдЕрдЪреНрдЫрд╛ рдХреИрдЪ @benhoytред рдореИрдВ urllib3 рд╕реЗ рдЙрддрдирд╛ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдБ рдЬрд┐рддрдирд╛ рдореИрдВ рдмрдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБред

рдпрджрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реИрд╕рд╛ рд╣реА рджрд┐рдЦрддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдЖрдкрдиреЗ рджрд┐рдЦрд╛рдпрд╛ рдерд╛ред
requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=1111): Max retries exceeded with url: / (Caused by <class 'socket.error'>: [Errno 61] Connection refused)

рддрдм рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмреЗрд╣рддрд░ рдЕрдкрд╡рд╛рдж рдХрд╛ рд╕рдкрдирд╛ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдерд╛ред

@ piotr-dobrogost, рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ (рдореЗрд░реЗ рд▓рд┐рдП) рдпрд╣ рддрдереНрдп рдерд╛ рдХрд┐ рдпрд╣ "рдЕрдзрд┐рдХрддрдо рдкреБрдирд░реНрдкреНрд░рдпрд╛рд╕ рдкрд╛рд░ рд╣реЛ рдЧрдпрд╛" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИ, рдЬрдм рдЗрд╕рдореЗрдВ рдХреЛрдИ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдкрд╣рд▓реЗ рддреЛ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рд╡рд╣ рд╡реЗрдм рд╕реЗрд╡рд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореИрдВ рдпрд╣ рдХрд╣рдХрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЙрдирд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд┐рдпрд╛ред рдлрд┐рд░, рдЖрдЧреЗ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдкрд░, рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рдПрдХ urllib3 quirk рдерд╛ред рддреЛ рдЖрдк рднреНрд░рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдЖрдк рдЕрдкрд╡рд╛рдж рдХреЗ (Caused by <class 'socket.error'>: [Errno 61] Connection refused) рднрд╛рдЧ рд╕реЗ рдЪреВрдХ рдЧрдП рд╣реИрдВ?

рд╣рд╛рдБ, рддреБрдо рд╕рд╣реА рд╣реЛ - рдпрд╣ рд╕рдм рд╡рд╣рд╛рдБ рд╣реИред рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрд╣рд▓реЗ рдпрд╛рдж рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ MaxRetryError рдПрдХ рд▓рд╛рд▓ рд╣реЗрд░рд┐рдВрдЧ рд╣реИред

рдпрд╣ рдореИрдХреНрд╕рд┐рдордо рд░рд┐рдЯреНрд░реАрдЬ рдЪреАрдЬ рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рдкрд╛рдЧрд▓ рдХрд░ рджреЗрддреА рд╣реИред рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рд╣реИ рдЕрдЧрд░ рдореИрдВ рдЗрд╕рдореЗрдВ рдЧреЛрддрд╛ рд▓рдЧрд╛рдКрдВ рдФрд░ рджреЗрдЦреВрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рд╕рдВрджреЗрд╢ рдХреЛ рд╕реНрдХреНрд╡реИрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдХреЛ рдПрдХ рд╕рд╛рде рдирд╣реАрдВ рд░рдЦ рд╕рдХрддрд╛ рд╣реВрдВ?

рдореЗрд░рд╛ рдорддрд▓рдм рдХрд╣реАрдВ рд╕реЗ рднреА рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рдХрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдХреНрд▓рд╛рдЙрдбреЗрдВрдЯ рдореЗрдВ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдкрд╛рдпрдерди рдХрд╛рдо рдореЗрдВ рдЕрдиреБрд░реЛрдз рдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рд╣рдореЗрдВ рдРрд╕реЗ рдкреГрд╖реНрда рдорд┐рд▓рддреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЪреАрдЬрд╝ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреА рд╣реИ, рдФрд░ рдпрд╣ рдПрдХ рд▓рд╛рд▓ рд╣реЗрд░рд┐рдВрдЧ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдЙрддреНрддрд░ рд╣реИ _рд╢рд╛рдпрдж_ред

рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐, рдЬрдмрдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╣рдо рдХреЛрдИ рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЖрдк рд╡рд┐рдлрд▓ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рд╣рдордиреЗ рдЬреЛ MaxRetryError рд▓рдкреЗрдЯрд╛ рд╣реИ рд╡рд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдЪрд┐рдд рд╣реИред рдпрджрд┐ рдЖрдк рдХреЛрдИ рдРрд╕рд╛ рд╕рдорд╛рдзрд╛рди рд▓реЗрдХрд░ рдЖ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ MaxRetryError рдХреЛ рдпрдерд╛рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ рдЬрдм рдЖрдк рдЧрд╛рд░рдВрдЯреА рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред =)

@ рд▓реБрдХрд╛рд╕рд╛ рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдпрд╣рд╛рдВ рдмреИрдХрд▓реЙрдЧ рдкрд░ рдЦреБрдж рдХреЛ рд░реАрдлреНрд░реЗрд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЕрдЧрд░ рдореБрдЭреЗ рдЧреЛрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдореМрдХрд╛ рдорд┐рд▓рд╛ рддреЛ рдореИрдВ рдЬрд░реВрд░ рдкрд╣реБрдВрдЪреВрдВрдЧрд╛ред

рдпрд╣ рд▓рдЧрднрдЧ рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЬрдЧрд╣ urllib3 рдореЗрдВ рд╣реИ? MaxRetryError рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреБрдирд░реНрдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢реВрдиреНрдп рдкреБрдирд░реНрдкреНрд░рдпрд╛рд╕ (рд╢рд╛рдпрдж рдЕрдиреБрднрд╡рд╣реАрди рдЕрдиреБрд░реЛрдз рдЕрдиреБрднрд╡) рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рднреНрд░рдорд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

urllib3 рдореЗрдВ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рднреНрд░рдорд┐рдд рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╣рд╛рдВ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬрдм retries==0 and max_retries!=0 рд╣реЛ рддреЛ рдХреЗрд╡рд▓ MaxRetryError рдЙрдард╛рдирд╛ рд▓рдЧрднрдЧ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдпрджрд┐ max_retries==0 рдмрдЬрд╛рдп рдПрдХ рд╕рд╛рджрд╛ RequestError рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдореИрдВ urllib3 рдХреЛ рдЕрдиреБрд░реЛрдзреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдкреИрдХреЗрдЬ рдореЗрдВ рдореМрдЬреВрдж рджреЗрдЦрддрд╛ рд╣реВрдВ - рдмрд╕ рдЙрддреНрд╕реБрдХ, рд╡рд╣ рдХреНрдпреЛрдВ рд╣реИ? рд╡реИрд╕реЗ рднреА, рдпреЗ рдХреЗрд╡рд▓ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рдереЗ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рд╡рд╣рд╛рдВ рдЙрдЫрд╛рд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдореИрдВ рдЕрднреА рднреА рдХреЛрдбрдмреЗрд╕ рдкрд░ рдкрдХрдбрд╝ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред

urllib3 рдореЗрдВ рдлрд┐рдХреНрд╕ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ @shazow рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ urllib3 рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ _does_ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ (3 рдмрд╛рд░ IIRC), рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ urllib3 рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╡реИрд╕рд╛ рд╣реА рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реЛред рдЕрдкрдирд╛ рдЗрдирдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕реЗ рдкрд┐рдВрдЧ рдХрд░рдирд╛ред

рд╣рдо рдХреБрдЫ рдирд┐рд░реНрднрд░рддрд╛ рдореБрджреНрджреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП urllib3 рд╡рд┐рдХреНрд░реЗрддрд╛ рд╣реИрдВред рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ, рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдо рд╣рдореЗрд╢рд╛ urllib3 рдХреЗ рдЬреНрдЮрд╛рдд рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╡рд┐рд░реБрджреНрдз рдХрд╛рд░реНрдп рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдХрд┐рд░рдХрд┐рд░рд╛ рд╡рд┐рд╡рд░рдг рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ # 1384 рдФрд░ # 1812 рдореЗрдВ рдХрд╖реНрдЯрджрд╛рдпреА рд▓рдВрдмрд╛рдИ рдкрд░ рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИред

рдУрд╣ рдХрд┐рд░рдХрд┐рд░рд╛ рд▓реЗрдХрд┐рди рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдгред @shazow рдпреЗ рдореЗрд░реЗ рдХреБрдЫ рд╣реА рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ - рдКрдкрд░ рджрд┐рдП рдЧрдП MaxRetryError рдХреЗ рдмрдЬрд╛рдп рдПрдХ RequestError рдЙрдард╛рдирд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдмреЗрд╣рддрд░ рдмрд╛рд╣рд░ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рдмрд╛рдж MaxRetryError рдХреЛ рд╕рдордЭрдиреЗ urlopen ред

рджреЛрд╣рд░рд╛ рд╕рдВрдкрд╛рджрди: рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдХреНрд╡рд╛рд░реНрдЧ рддрд╛рдХрд┐ рдХреЛрдИ raise MaxRetryError(retries=0) рдФрд░ рд╕рдВрджреЗрд╢ рдХреЛ retries==0 рдкрд░ рдмрджрд▓ рд╕рдХреЗред

рдХреИрд╕реЗ рдПрдХ retries=False рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреБрдирд░реНрдкреНрд░рдпрд╛рд╕ рдЕрдХреНрд╖рдо рдХрд░ рджреЗрдЧрд╛ рдФрд░ рд╣рдореЗрд╢рд╛ MaxRetryError рдмрдЬрд╛рдп рдореВрд▓ рдЕрдкрд╡рд╛рдж рдмрдврд╝рд╛рдПрдЧрд╛?

urlopen рдХреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреБрдирд░реНрдкреНрд░рдпрд╛рд╕ рдХреЗ рдкреВрдЫрдиреЗ рдФрд░ рдкреБрдирд░реНрдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ 0 рддрдХ рдЧрд┐рдирдиреЗ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рдЬрдм рдЖрдкрдиреЗ рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд╣рд╛ рддреЛ MaxRetryError рджреЗрдЦрдХрд░ рдЭрдХрдЭреЛрд░ рд░рд╣рд╛ рд╣реИред

рдЕрдЧрд░ рдХреЛрдИ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреИрдЪ + рдЯреЗрд╕реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдЧрд╛, рддреЛ рдЗрд╕рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреАред :)

@shazow рдмрдврд╝рд┐рдпрд╛, рдЕрдЧрд░ рдореИрдВ рд╕рд╛рдЗрдХрд┐рд▓ рдвреВрдВрдв рд╕рдХрддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рдЦреЗрд▓

\рдУ/

^рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдкреИрдЪ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛? рдорд╛рдорд▓рд╛ рдПрдХ рд╕рд╛рд▓ рдкреБрд░рд╛рдирд╛ рд▓рдЧрддрд╛ рд╣реИред

рдЬрд╣рд╛рдБ рддрдХ рдореЗрд░реА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рдирд╣реАрдВред =)

retries=False рдХреЛ рдореВрд▓ рдЕрдкрд╡рд╛рдж рдХреЛ v1.9 рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдард╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреЛрдИ рд░реИрдкрд┐рдВрдЧ рдирд╣реАрдВред

@kevinburke рд╡рд┐рдЪрд╛рд░?

рдереЛрдбрд╝рд╛ рдФрд░ рд╕рдордп рдЪрд╛рд╣рд┐рдП

рдХреЗрд╡рд┐рди рдмрд░реНрдХ
рдлреЛрди: 925.271.7005 | рдЯреНрд╡реЗрдВрдЯреАрдорд┐рд▓реАрд╕реЗрдХрдВрдбреНрд╕.рдХреЙрдо

5 рдЕрдХреНрдЯреВрдмрд░ 2014 рдХреЛ рд╕реБрдмрд╣ 10:37 рдмрдЬреЗ, рдЗрдпрд╛рди рдХреЙрд░реНрдбрд╛рд╕реНрдХреЛ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

@kevinburke https://github.com/kevinburke рд╡рд┐рдЪрд╛рд░?

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kennethreitz/requests/issues/1198#issuecomment -57945403
.

рд╣рд╛рдБ рдпрд╣ рддрдп рд╣реЛ рдЧрдпрд╛ рд╣реИ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ

requests.get('http://localhost:11211')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "requests/api.py", line 60, in get
    return request('get', url, **kwargs)
  File "requests/api.py", line 49, in request
    return session.request(method=method, url=url, **kwargs)
  File "requests/sessions.py", line 457, in request
    resp = self.send(prep, **send_kwargs)
  File "requests/sessions.py", line 569, in send
    r = adapter.send(request, **kwargs)
  File "requests/adapters.py", line 407, in send
    raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', error(61, 'Connection refused'))

рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рднреА рдореЗрд░реА рдУрд░ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдЕрд╕реНрд╡реАрдХреГрдд рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓ рд░рд╣реА рд╣реИред рдореЗрд░реА рдкрд╛рдпрдерди рд▓рд┐рдкрд┐ рдореЗрдВ рдореИрдВ рдЖрд░рдкреАрд╕реА рд╕рд░реНрд╡рд░ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

@ рд╕рд┐рджреНрдзреЗрд╢ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдХреБрдЫ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлрд╝реНрд▓реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдпрд╣ рдХрднреА-рдХрднрд╛рд░ рд╣реБрдЖред рдХреИрд╕реЗ рдареАрдХ рдХрд░реЗрдВ, рдХреНрдпрд╛ рдХреЛрдИ рдореЗрд░реА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ? редрдзрдиреНрдпрд╡рд╛рджред

request.exceptions.ConnectionError: HTTPSConnectionPool(host='api.xxxx.com', port=443): рдЕрдзрд┐рдХрддрдо рдкреБрдирд░реНрдкреНрд░рдпрд╛рд╕ url рдХреЗ рд╕рд╛рде рдкрд╛рд░ рд╣реЛ рдЧрдП: /v2/goods/?category=0&sort_type=2&page_size=3&page_num=13&t=0&count=110 (рдХрд╛рд░рдг) NewConnectionError рджреНрд╡рд╛рд░рд╛ (': рдПрдХ рдирдпрд╛ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓: [Errno 110] рдХрдиреЗрдХреНрд╢рди рдХрд╛ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛',))
рдЯреНрд░реЗрд╕рдмреИрдХ (рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдХреЙрд▓ рдЕрдВрддрд┐рдо):
рдлрд╝рд╛рдЗрд▓ "test.py", рд▓рд╛рдЗрди рейрейрел, in
рдореБрдЦреНрдп()
рдлрд╝рд╛рдЗрд▓ "test.py", рд▓рд╛рдЗрди реирепреж, рдореБрдЦреНрдп рдореЗрдВ
рдкрд░рд┐рдгрд╛рдо = get_goods_info ()
рдлрд╝рд╛рдЗрд▓ "test.py", рд▓рд╛рдЗрди 67, get_goods_info . рдореЗрдВ
рдкрд░рд┐рдгрд╛рдо = рдЕрдиреБрд░реЛрдзред рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (рдпреВрдЖрд░рдПрд▓)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python2.7/site-packages/requests/api.py", рд▓рд╛рдЗрди 69, рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ
рд╡рд╛рдкрд╕реА рдЕрдиреБрд░реЛрдз ('рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ', url, params = params, *_kwargs)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python2.7/site-packages/requests/api.py", рд▓рд╛рдЗрди 50, рдЕрдиреБрд░реЛрдз рдореЗрдВ
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ = session.request (рд╡рд┐рдзрд┐ = рд╡рд┐рдзрд┐, url = url, *_kwargs)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python2.7/site-packages/requests/sessions.py", рд▓рд╛рдЗрди 468, рдЕрдиреБрд░реЛрдз рдореЗрдВ
рд╕рдореНрдорд╛рди = рд╕реНрд╡рдпрдВ рднреЗрдЬреЗрдВ (рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХрд╛, *_send_kwargs)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python2.7/site-packages/requests/sessions.py", рд▓рд╛рдЗрди 576, рднреЗрдЬрдиреЗ рдореЗрдВ
рдЖрд░ = рдПрдбреЗрдкреНрдЯрд░ред рднреЗрдЬреЗрдВ (рдЕрдиреБрд░реЛрдз, *_kwargs)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python2.7/site-packages/requests/adapters.py", рд▓рд╛рдЗрди 423, рднреЗрдЬрдиреЗ рдореЗрдВ
рдХрдиреЗрдХреНрд╢рди рдмрдврд╝рд╛рдПрдВ рддреНрд░реБрдЯрд┐ (рдИ, рдЕрдиреБрд░реЛрдз = рдЕрдиреБрд░реЛрдз)

@nkjulia рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдкреНрд░рдпрд╛рд╕ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рджреВрд░рд╕реНрде рд╕рд░реНрд╡рд░ рдЕрддрд┐рднрд╛рд░рд┐рдд рд╣реИ рдпрд╛ рдЖрдкрдХрд╛ рдХрдиреЗрдХреНрд╢рди рдЯрд╛рдЗрдордЖрдЙрдЯ рдмрд╣реБрдд рдХрдо рд╣реИред

рдореИрдВ рднреА рдЗрд╕рд╕реЗ рдЧреБрдорд░рд╛рд╣ рд╣реБрдЖ....

@kevinburke рдХрдиреЗрдХреНрд╢рди рдЕрд╕реНрд╡реАрдХреГрдд рддреНрд░реБрдЯрд┐ рдорд┐рд▓рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХреИрд╕реЗ рд╣реБрдЖ? рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рджреЛрд╕реНрдд рдХреЛ рд╕рд▓рд╛рд╣ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рддрд┐рдпрд╛

рдореЗрд░реЗ рдкреЛрд╕реНрдЯ рдореЗрдЯ рдкрд░ рдзреНрдпрд╛рди рди рджреЗрдВред рдореЗрд░реА рдорд╢реАрди рдореЗрдВ рдЕрдЬрдЧрд░ рдХреЗ рдХрдИ рд╕рдВрд╕реНрдХрд░рдг рдереЗ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рд╡рд╣ рд╕рд╣реА рдХреЛ рдирд╣реАрдВ рдЪреБрди рдкрд╛ рд░рд╣рд╛ рдерд╛ рдФрд░ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рд░рд╣рд╛ рдерд╛ред рдЗрд╕ рд╕реЛрдЪ рдХреЛ рдкреЛрд╕реНрдЯ рдХрд░рдирд╛ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдорджрджрдЧрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдпрд╣ рдХрднреА-рдХрднрд╛рд░ рд╣реБрдЖред рдХреИрд╕реЗ рдареАрдХ рдХрд░реЗрдВ, рдХреНрдпрд╛ рдХреЛрдИ рдореЗрд░реА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ? редрдзрдиреНрдпрд╡рд╛рджред

request.exceptions.ConnectionError: HTTPSConnectionPool(host='api.xxxx.com', port=443): рдЕрдзрд┐рдХрддрдо рдкреБрдирд░реНрдкреНрд░рдпрд╛рд╕ url рдХреЗ рд╕рд╛рде рдкрд╛рд░ рд╣реЛ рдЧрдП: /v2/goods/?category=0&sort_type=2&page_size=3&page_num=13&t=0&count=110 (рдХрд╛рд░рдг) NewConnectionError рджреНрд╡рд╛рд░рд╛ (': рдПрдХ рдирдпрд╛ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓: [Errno 110] рдХрдиреЗрдХреНрд╢рди рдХрд╛ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛',))
рдЯреНрд░реЗрд╕рдмреИрдХ (рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рдХреЙрд▓ рдЕрдВрддрд┐рдо):
рдлрд╝рд╛рдЗрд▓ "test.py", рд▓рд╛рдЗрди рейрейрел, in
рдореБрдЦреНрдп()
рдлрд╝рд╛рдЗрд▓ "test.py", рд▓рд╛рдЗрди реирепреж, рдореБрдЦреНрдп рдореЗрдВ
рдкрд░рд┐рдгрд╛рдо = get_goods_info ()
рдлрд╝рд╛рдЗрд▓ "test.py", рд▓рд╛рдЗрди 67, get_goods_info . рдореЗрдВ
рдкрд░рд┐рдгрд╛рдо = рдЕрдиреБрд░реЛрдзред рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (рдпреВрдЖрд░рдПрд▓)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python2.7/site-packages/requests/api.py", рд▓рд╛рдЗрди 69, рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ
рд╡рд╛рдкрд╕реА рдЕрдиреБрд░реЛрдз ('рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ', url, params = params, *_kwargs)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python2.7/site-packages/requests/api.py", рд▓рд╛рдЗрди 50, рдЕрдиреБрд░реЛрдз рдореЗрдВ
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ = session.request (рд╡рд┐рдзрд┐ = рд╡рд┐рдзрд┐, url = url, *_kwargs)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python2.7/site-packages/requests/sessions.py", рд▓рд╛рдЗрди 468, рдЕрдиреБрд░реЛрдз рдореЗрдВ
рд╕рдореНрдорд╛рди = рд╕реНрд╡рдпрдВ рднреЗрдЬреЗрдВ (рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХрд╛, *_send_kwargs)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python2.7/site-packages/requests/sessions.py", рд▓рд╛рдЗрди 576, рднреЗрдЬрдиреЗ рдореЗрдВ
рдЖрд░ = рдПрдбреЗрдкреНрдЯрд░ред рднреЗрдЬреЗрдВ (рдЕрдиреБрд░реЛрдз, *_kwargs)
рдлрд╝рд╛рдЗрд▓ "/usr/local/lib/python2.7/site-packages/requests/adapters.py", рд▓рд╛рдЗрди 423, рднреЗрдЬрдиреЗ рдореЗрдВ
рдХрдиреЗрдХреНрд╢рди рдмрдврд╝рд╛рдПрдВ рддреНрд░реБрдЯрд┐ (рдИ, рдЕрдиреБрд░реЛрдз = рдЕрдиреБрд░реЛрдз)

рдЕрдЧрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдХреБрдЫ рд╕рд▓рд╛рд╣ рджреЗрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

eromoe picture eromoe  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ghtyrant picture ghtyrant  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ReimarBauer picture ReimarBauer  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

NoahCardoza picture NoahCardoza  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

8key picture 8key  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ