由于 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.
如果example.com或其/ submit应用程序已关闭,我该如何使request.post超时或从post_test()返回?
答案 0 :(得分:7)
使用timeout
参数:
r = requests.post(url, data=payload, timeout=1.5)
注意:
timeout
不是整个响应下载的时间限制; 相反,如果服务器未发出响应,则会引发异常 持续timeout
秒(如果在 基础套接字timeout
秒。如果未指定超时 明确地,请求不会超时。
答案 1 :(得分:3)