Python中requests库的HTTPError()异常解决方案
发布时间:2023-12-26 01:01:32
在使用Python的requests库发送HTTP请求时,可能会遇到HTTPError异常。HTTPError表示在请求过程中发生了HTTP错误。
HTTPError异常继承自父类的RequestException异常,并包含一个响应(response)属性,其中包含了请求的响应对象。通过response对象,我们可以获取到响应的状态码、头信息等。
解决HTTPError异常的方法有以下几种:
1. 使用try-except语句捕获HTTPError异常,并处理异常:
import requests
from requests.exceptions import HTTPError
try:
response = requests.get('http://www.example.com')
response.raise_for_status() # 如果响应状态码不是200,会抛出HTTPError异常
except HTTPError as e:
print(f'HTTP error occurred: {e}')
2. 使用response的status_code属性判断响应的状态码,如果不是200则抛出自定义的异常:
import requests
from requests.exceptions import HTTPError
response = requests.get('http://www.example.com')
if response.status_code != 200:
raise Exception(f'Request failed with status code: {response.status_code}')
3. 使用response的raise_for_status()方法抛出HTTPError异常:
import requests
try:
response = requests.get('http://www.example.com')
response.raise_for_status() # 如果响应状态码不是200,会抛出HTTPError异常
except requests.exceptions.HTTPError as e:
print(f'HTTP error occurred: {e}')
下面是一个包含使用例子的完整示例,演示了如何处理HTTPError异常:
import requests
from requests.exceptions import HTTPError
try:
response = requests.get('http://www.example.com')
response.raise_for_status() # 如果响应状态码不是200,会抛出HTTPError异常
except HTTPError as e:
print(f'HTTP error occurred: {e}')
else:
print('Request successful!')
在上面的例子中,我们发送了一个GET请求到http://www.example.com,并使用raise_for_status()方法抛出HTTPError异常。如果请求成功,就会打印"Request successful!",否则会打印具体的异常信息。
总结起来,处理HTTPError异常的方式有多种,你可以根据具体的需求选择使用哪种方式来解决异常。
