In my code below, I use requests.post
. What are the possibilities to simply continue if the site is down?
I have the following code:
def post_test():
import requests
url = 'http://example.com:8000/submit'
payload = {'data1': 1, 'data2': 2}
try:
r = requests.post(url, data=payload)
except:
return # if the requests.post fails (eg. the site is down) I want simly to return from the post_test(). Currenly it hangs up in the requests.post without raising an error.
if (r.text == 'stop'):
sys.exit() # I want to terminate the whole program if r.text = 'stop' - this works fine.
How could I make the requests.post timeout, or return from post_test() if example.com, or its /submit app is down?
Use the timeout
parameter:
r = requests.post(url, data=payload, timeout=1.5)
Requests documentation: Timeouts
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.