以下のコードでは、requests.post
。サイトがダウンした場合に単に続行する可能性は何ですか?
私は次のコードを持っています:
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.
どのようにしたら、requests.postタイムアウトを作成できますか、example.comまたはその/ submitアプリがダウンしている場合、post_test()から戻りますか?
timeout
パラメータを使用します。
r = requests.post(url, data=payload, timeout=1.5)
注:
timeout
は、応答のダウンロード全体の時間制限ではありません。むしろ、サーバーがtimeout
秒間応答を発行しなかった場合(より正確には、基になるソケットでtimeout
秒間バイトが受信されなかった場合)、例外が発生します。タイムアウトが明示的に指定されていない場合、リクエストはタイムアウトしません。