Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中;“请求”;模块,如何检查服务器是否已关闭?_Python_Rest_Http - Fatal编程技术网

在Python中;“请求”;模块,如何检查服务器是否已关闭?

在Python中;“请求”;模块,如何检查服务器是否已关闭?,python,rest,http,Python,Rest,Http,我想检查我的服务器是否同时出现故障或内部500错误 如何使用请求检查这两种情况?请求会引发不同类型的异常,具体取决于导致请求失败的原因 r = requests.get('http://example.com') print str(r.status_code) 好的,要么你的服务器应答,在这种情况下,它并没有真正关闭,你上面的代码可以工作(只需添加一个if status==500检查),要么它不会应答,然后请求将失败并抛出一个异常。我只想要一个异常,而不是两个。我是否可以删除“request

我想检查我的服务器是否同时出现故障或内部500错误


如何使用请求检查这两种情况?

请求会引发不同类型的异常,具体取决于导致请求失败的原因

r = requests.get('http://example.com')
print str(r.status_code)

好的,要么你的服务器应答,在这种情况下,它并没有真正关闭,你上面的代码可以工作(只需添加一个if status==500检查),要么它不会应答,然后请求将失败并抛出一个异常。我只想要一个异常,而不是两个。我是否可以删除“requests.exceptions”部分并只使用except?如果您想用一个块捕获两个异常,请使用元组:
except(exception1、exception2、exception3等)
。(这是一个元组,因为在Python 2中,Exception 2除了Exception 1之外,Exception 2还有其他含义。如果我不想使用
r.raise\u for_status()
(可能是一种引发内部异常的策略),该怎么办?必须有一种方法来处理使用
status\u code
@mrmeses在
r.status\u code
中的状态代码,因此如果您不希望请求引发异常,那么就编写自己的代码来查看状态。谢谢@thomasorzco我检查了。我使用的代码受到请求框架内部的严重影响。我已使用
elif 400
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`