HTTP requests.post timeout
All requests take a timeout keyword argument. 1
The requests.post
is simply forwarding its arguments to requests.request
2
When the app is down, a ConnectionError
is more likely than a Timeout
. 3
try:
requests.post(url, data=payload, timeout=5)
except requests.Timeout:
# back off and retry
pass
except requests.ConnectionError:
pass
Use the timeout
parameter:
r = requests.post(url, data=payload, timeout=1.5)
Note:
timeout
is not a time limit on the entire response download; rather, an exception is raised if the server has not issued a response fortimeout
seconds (more precisely, if no bytes have been received on the underlying socket fortimeout
seconds). If no timeout is specified explicitly, requests do not time out.