python请求:如何检查“ 200 OK”

时间:2019-01-08 07:47:28

标签: python python-requests

检查从请求中收到的响应是否为“ 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语句检查还是不匹配?

7 个答案:

答案 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将以整数形式返回状态代码。

请参见http://docs.python-requests.org/en/master/

答案 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