r = requests.get('http://example.com')
print str(r.status_code)
我想检查我的服务器是否都是下降或内部500错误。在Python“请求”模块中,如何检查服务器是关闭还是500?
我该如何检查两个请求?
r = requests.get('http://example.com')
print str(r.status_code)
我想检查我的服务器是否都是下降或内部500错误。在Python“请求”模块中,如何检查服务器是关闭还是500?
我该如何检查两个请求?
请求会根据导致请求失败的原因抛出不同类型的异常。
import requests.exceptions
try:
r = requests.get('http://example.com')
r.raise_for_status() # Raises a HTTPError if the status is 4xx, 5xxx
except (requests.exceptions.ConnectionError, requests.exceptions.Timeout):
print "Down"
except requests.exceptions.HTTPError:
print "4xx, 5xx"
else:
print "All good!" # Proceed to do stuff with `r`
我只喜欢一个例外,而不是两个。 Ca我删除了“requests.exceptions”部分,除了? – TIMEX 2014-10-31 19:42:25
如果你想用一个块捕获两个异常,使用一个元组:'except(exception1,exception2,exception3,etcetc)'。 (这是一个元组,因为在Python 2中'除了exception1,exception2'意味着别的东西。 – tyteen4a03 2014-10-31 19:47:37
嘛,要么你的服务器的答案,在这种情况下,它不是真正的下跌和你上面的代码就可以了(只是增加一个,如果状态,请执行== 500检查),否则它不会回答,然后请求将失败并抛出异常。 – 2014-10-31 19:38:45