gpt4 book ai didi

HTTP 响应代码的 Python 异常

转载 作者:太空狗 更新时间:2023-10-29 21:22:05 32 4
gpt4 key购买 nike

当查询 API 的 HTTP 响应代码不是 200 时,我想引发 Python 标准异常,但我应该使用哪个特定异常?现在我提出一个 OSError:

if response.status_code != 200:
raise OSError("Response " + str(response.status_code)
+ ": " + response.content)

我知道 documentation for built-in exceptions .

最佳答案

您可以简单地调用Response.raise_for_status()关于您的回复:

>>> import requests
>>> url = 'http://stackoverflow.com/doesnt-exist'
>>> r = requests.get(url)
>>>
>>> print r.status_code
404
>>> r.raise_for_status()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "requests/models.py", line 831, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: Not Found

这将引发 requests.HTTPError对于任何 4xx5xx 响应。

请参阅 Response Status Code 上的文档一个更完整的例子。


请注意,这 完全按照您的要求执行 (status != 200):它不会为 201 Created 引发异常或 204 No Content,或任何 3xx 重定向 - 但这很可能是您想要的行为:requests 将仅遵循重定向,如果您正在处理 API,其他 2xx 通常就可以了。

关于HTTP 响应代码的 Python 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30855725/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com