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

Python中如何处理HTTP请求错误

发布时间:2023-12-28 00:27:47

在Python中,可以使用try-except语句来处理HTTP请求错误。Python的requests库是一种流行的用于发送HTTP请求的库,它也提供了异常处理机制,能够捕获和处理HTTP请求错误。下面是一个处理HTTP请求错误的示例代码:

import requests

try:
    response = requests.get('http://www.example.com')
    # 检查响应状态码
    if response.status_code == 200:
        # 成功处理响应
        print('请求成功')
        print(response.text)
    else:
        # 处理其他状态码
        print('请求失败,状态码:%d' % response.status_code)
except requests.exceptions.RequestException as e:
    # 处理请求异常
    print('请求发生异常:%s' % str(e))

在上面的代码中,首先使用requests.get()方法发送了一个GET请求,并将响应存储在response变量中。然后,通过检查response对象的status_code属性,可以判断请求是否成功。如果状态码是200,表示请求成功,可以通过response.text属性获取响应的内容。如果状态码不是200,可以在else分支中处理其他状态码的情况。

如果在发送请求的过程中发生异常,比如网络不可达或服务器无响应等情况,requests库会抛出requests.exceptions.RequestException异常。可以使用try-except语句来捕获该异常,并在except分支中处理异常情况。

另外,在处理HTTP请求错误时,还可以使用response.raise_for_status()方法,该方法会在请求失败时抛出一个HTTPError异常。可以使用类似下面的代码进行处理:

import requests

try:
    response = requests.get('http://www.example.com')
    response.raise_for_status()
    # 成功处理响应
    print('请求成功')
    print(response.text)
except requests.exceptions.RequestException as e:
    # 处理请求异常
    print('请求发生异常:%s' % str(e))
except requests.exceptions.HTTPError as e:
    # 处理HTTP请求错误
    print('HTTP请求错误:%s' % str(e))

在这个例子中,response.raise_for_status()方法会检查响应状态码并在状态码不是200的情况下抛出一个HTTPError异常。可以在except分支中捕获并处理该异常。

综上所述,通过使用try-except语句并结合requests库的异常处理机制,可以在Python中有效地处理HTTP请求错误。