Python I/O - HTTP 请求/响应

在Python中,HTTP 请求/响应指的是向服务器发送HTTP请求并从服务器接收HTTP响应的过程。
这通常用于与Web API交互、获取网页和执行各种与Web相关的任务。

发送HTTP请求

要在Python中发送HTTP请求,可以使用requests库。
该库提供了一种简单直观的方式来进行HTTP请求。
以下是向服务器发送GET请求的示例:

python
import requests

response = requests.get('https://api.example.com/data')

在上面的代码中,我们导入requests库并使用get方法向指定的URL发送GET请求。
服务器的响应存储在response变量中。

处理HTTP响应

一旦我们发送了HTTP请求,就需要处理服务器的响应。
requests库返回的响应对象提供了各种方法和属性来访问响应数据。
以下是一些常见的操作:

  • 访问响应内容:您可以使用content属性访问响应的内容。
    这将返回响应的原始字节。
python
content = response.content
  • 访问响应文本:如果响应包含文本数据,可以使用text属性访问它。
    这将返回响应内容作为字符串。
python
text = response.text
  • 访问响应状态码:您可以使用status_code属性访问响应的状态码。
    这表示请求是否成功或遇到错误。
python
status_code = response.status_code
  • 访问响应头:您可以使用headers属性访问响应的头部。
    这提供了有关服务器、内容类型和其他元数据的信息。
python
headers = response.headers

处理错误

在进行HTTP请求时,处理可能发生的错误非常重要。
requests库提供了内置的错误处理机制。
以下是处理错误的示例:

python
import requests

try:
    response = requests.get('https://api.example.com/data')
    response.raise_for_status()  # 如果请求不成功,则引发异常
except requests.exceptions.HTTPError as err:
    print(f"发生HTTP错误:{err}")
except requests.exceptions.RequestException as err:
    print(f"发生错误:{err}")

在上面的代码中,我们使用try-except块捕获可能在请求过程中发生的任何异常。
raise_for_status()方法在请求不成功时引发异常(例如,如果状态码不在200范围内)。

⚠️ 注意

  • requests库不包含在Python标准库中。
    您需要使用pip install requests单独安装它。
  • 在进行HTTP请求时,正确处理错误非常重要,以确保代码的健壮性。