2014-10-31 34 views
-1
r = requests.get('http://example.com') 
print str(r.status_code) 

我想检查我的服务器是否都是下降或内部500错误。在Python“请求”模块中,如何检查服务器是关闭还是500?

我该如何检查两个请求?

+2

嘛,要么你的服务器的答案,在这种情况下,它不是真正的下跌和你上面的代码就可以了(只是增加一个,如果状态,请执行== 500检查),否则它不会回答,然后请求将失败并抛出异常。 – 2014-10-31 19:38:45

回答

1

请求会根据导致请求失败的原因抛出不同类型的异常。

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` 
+0

我只喜欢一个例外,而不是两个。 Ca我删除了“requests.exceptions”部分,除了? – TIMEX 2014-10-31 19:42:25

+0

如果你想用一个块捕获两个异常,使用一个元组:'except(exception1,exception2,exception3,etcetc)'。 (这是一个元组,因为在Python 2中'除了exception1,exception2'意味着别的东西。 – tyteen4a03 2014-10-31 19:47:37

相关问题