检查从请求中收到的响应是否为“ 200 OK”或发生错误的最简单方法是什么?
我试图做这样的事情:
....
resp = requests.post(my_endpoint_var, headers=header_var, data=post_data_var)
print(resp)
if resp == "<Response [200]>":
print ('OK!')
else:
print ('Boo!)
屏幕上的输出为:
响应[200](包括“ <”和““>”) 嘘!
所以即使我得到200,我的if语句检查还是不匹配?
答案 0 :(得分:4)
检查会更简单
%time [np.random.shuffle(x) for x in alist]
CPU times: user 23.7 s, sys: 160 ms, total: 23.9 s
Wall time: 23.9 s
答案 1 :(得分:3)
根据docs,响应对象上有一个status_code属性。因此,您可以执行以下操作:
if resp.status_code == 200:
print ('OK!')
else:
print ('Boo!)
答案 2 :(得分:2)
resp.status_code
将以整数形式返回状态代码。
答案 3 :(得分:2)
只需检查响应属性router.get('/list', async (req, res) => {
try {
const list = await Kp.find({}).select('summary detailDesc -_id');
list.forEach(function(element){});
res.render('list', {list});
}
catch (err) {
res.json({ message: 'Test is not working ' + err });
console.log(err);
}
});
。对于所有2xx响应,均为resp.ok
,对于4xx和5xx,均为True
。但是,用于检查请求是否成功的 pythonic 方法是(可选)引发带有
False
EAFP: F 主动性 A 比 P 更容易 E :您应该这样做您期望的工作方式,以及是否可能从操作中引发异常,然后将其捕获并处理该事实。
答案 4 :(得分:1)
尝试:
if resp.status_code == 200:
print ('OK!')
else:
print ('Boo!)
答案 5 :(得分:0)
由于HTTP中将任何2XX类响应都视为successful,因此我将使用:
if resp.status_code >= 200 and resp.status_code <= 299:
print ('OK!')
else:
print ('Boo!')
答案 6 :(得分:0)
在简单情况下:
import requests
response = requests.get(url)
if not response:
#handle error here
else:
#handle normal response