欢迎访问宙启技术站
智能推送

Python中的requests库HTTPError()异常处理技巧

发布时间:2023-12-26 01:03:42

Python中的requests库经常被用来发送HTTP请求,它提供了一种简单且方便的方式来与Web服务器进行交互。然而,有时候我们可能会遇到一些HTTP错误,如404 Not Found,500 Internal Server Error等。requests库提供了HTTPError()异常来处理这些错误。

HTTPError()异常是requests库中的一个异常类,用于表示HTTP请求时发生的错误。它继承自父类BaseException,表示一个基本的错误异常。当你发送一个HTTP请求时,如果服务器返回了错误的HTTP状态码,比如404 Not Found,requests库就会引发一个HTTPError()异常。

下面是一个使用HTTPError()异常处理HTTP错误的例子:

import requests

url = 'https://www.example.com/'  # 一个不存在的网址

try:
    response = requests.get(url)
    response.raise_for_status()  # 检查响应的状态码,如果是错误的则引发HTTPError异常
    print('请求成功!')
except requests.HTTPError as e:
    print('请求失败!错误状态码:', e.response.status_code)

在上面的例子中,我们首先定义了一个url变量,指向一个不存在的网址。然后使用requests.get()方法发送一个GET请求,并将结果保存在response变量中。接下来使用raise_for_status()方法检查响应的状态码,如果状态码是错误的,则会引发HTTPError()异常。最后,如果请求成功,则打印"请求成功!";如果请求失败,则打印"请求失败!错误状态码:"以及实际的状态码。

当我们运行上面的代码时,输出结果应该是"请求失败!错误状态码: 404",因为我们访问的网址是不存在的,服务器返回了404 Not Found。

除了使用HTTPError()异常来处理请求时发生的HTTP错误,我们还可以通过检查response对象的状态码来判断请求是否成功。例如,我们可以根据状态码来执行不同的操作:

import requests

url = 'https://www.example.com/'  # 一个不存在的网址

response = requests.get(url)

if response.status_code == 200:
    print('请求成功!')
else:
    print('请求失败!错误状态码:', response.status_code)

在上面的例子中,我们首先发送了一个GET请求,并将结果保存在response变量中。然后,我们检查response对象的status_code属性,如果状态码是200,则表示请求成功;否则表示请求失败,并打印错误状态码。

当我们运行上面的代码时,输出结果应该是"请求失败!错误状态码: 404",因为我们访问的网址是不存在的,服务器返回了404 Not Found。

总的来说,使用requests库的HTTPError()异常可以方便地处理HTTP请求过程中产生的错误。我们可以通过捕捉和处理HTTPError()异常来处理HTTP错误,或者通过检查response对象的状态码来判断请求是否成功。无论哪种方式,我们都可以根据实际情况来处理错误并采取相应的措施。