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

Python中的requests.exceptionsHTTPError()异常与错误处理

发布时间:2023-12-26 01:04:01

在Python中,使用requests库发送HTTP请求时,可能会遇到一些异常情况。其中一个常见的异常是HTTPError。HTTPError是requests库提供的一个异常类,用于处理发送HTTP请求时遇到的错误。

HTTPError异常有一个status_code属性,可以获取服务器返回的HTTP状态码。通常,2xx状态码表示请求成功,3xx表示重定向,4xx表示客户端错误,5xx表示服务器错误。

下面是一个使用requests库发送HTTP请求时可能出现HTTPError异常的例子:

import requests

try:
    response = requests.get('https://www.example.com/404')
    response.raise_for_status()  # 抛出HTTPError异常
except requests.exceptions.HTTPError as e:
    print(f"HTTP Error: {e.response.status_code}")

在这个例子中,我们发送一个GET请求到一个不存在的网址(https://www.example.com/404),服务器返回404状态码表示页面未找到。我们使用raise_for_status()方法来引发HTTPError异常。在异常处理代码块中,我们打印出了异常的状态码(404)。

如果不想抛出HTTPError异常,可以使用response.status_code属性来判断响应的状态码,并进行相应的处理。下面是一个例子:

import requests

response = requests.get('https://www.example.com/404')
if response.status_code == 404:
    print("Page not found.")
else:
    print("Request successful.")

在这个例子中,我们发送了一个GET请求到一个不存在的网址,并通过response.status_code属性来判断响应的状态码。如果状态码是404,表示页面未找到,我们打印出"Page not found.";否则,打印出"Request successful."。

除了HTTPError异常,requests库还提供了其他一些异常类,用于处理不同类型的错误,比如Timeout异常(请求超时)、ConnectionError异常(连接错误)等。可以根据需要选择相应的异常类进行错误处理。

总结起来,要处理requests库中的HTTPError异常,可以使用response.raise_for_status()方法来抛出异常,或者通过response.status_code属性来判断响应的状态码,并进行相应的处理。