Tailwind CSSTailwind CSS
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain

8.2 HTTP 请求与响应

HTTP(超文本传输协议)是互联网上应用最为广泛的协议之一,用于客户端与服务器之间的通信。Python 提供了多种工具和库来处理 HTTP 请求与响应,使得开发者能够轻松地与 Web 服务进行交互。本节将介绍如何使用 Python 发送 HTTP 请求、处理响应,并解析返回的数据。

8.2.1 HTTP 请求的基本概念

HTTP 请求由客户端发起,通常包括以下几个部分:

  • 请求方法:常见的请求方法有 GET、POST、PUT、DELETE 等,用于指定客户端希望执行的操作。
  • 请求头:包含请求的元信息,如 User-Agent、Content-Type、Authorization 等。
  • 请求体:在 POST 或 PUT 请求中,请求体通常包含客户端发送给服务器的数据。

8.2.2 使用 requests 库发送 HTTP 请求

Python 的 requests 库是处理 HTTP 请求的常用工具,它提供了简洁的 API 来发送各种类型的 HTTP 请求。

发送 GET 请求
import requests

# 发送 GET 请求
response = requests.get('https://api.example.com/data')

# 获取响应状态码
print(response.status_code)

# 获取响应内容
print(response.text)
发送 POST 请求
import requests

# 发送 POST 请求
data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://api.example.com/submit', data=data)

# 获取响应状态码
print(response.status_code)

# 获取响应内容
print(response.json())

8.2.3 处理 HTTP 响应

HTTP 响应通常包括以下几个部分:

  • 状态码:表示请求的处理结果,如 200 表示成功,404 表示资源未找到。
  • 响应头:包含响应的元信息,如 Content-Type、Content-Length 等。
  • 响应体:包含服务器返回的数据,通常是 HTML、JSON 或二进制数据。
解析 JSON 响应
import requests

# 发送 GET 请求
response = requests.get('https://api.example.com/data')

# 解析 JSON 响应
data = response.json()
print(data)
处理响应头
import requests

# 发送 GET 请求
response = requests.get('https://api.example.com/data')

# 获取响应头
headers = response.headers
print(headers['Content-Type'])

8.2.4 处理异常与错误

在实际应用中,网络请求可能会遇到各种问题,如连接超时、服务器错误等。requests 库提供了异常处理机制来应对这些情况。

import requests
from requests.exceptions import RequestException

try:
    response = requests.get('https://api.example.com/data', timeout=5)
    response.raise_for_status()  # 如果响应状态码不是 200,抛出异常
except RequestException as e:
    print(f"请求失败: {e}")

8.2.5 使用 Session 保持会话

在某些情况下,客户端需要与服务器保持会话状态,如处理登录后的请求。requests 库提供了 Session 对象来管理会话。

import requests

# 创建 Session 对象
session = requests.Session()

# 登录
login_data = {'username': 'user', 'password': 'pass'}
session.post('https://api.example.com/login', data=login_data)

# 使用 Session 发送后续请求
response = session.get('https://api.example.com/protected')
print(response.text)

8.2.6 总结

通过本节的学习,您应该掌握了如何使用 Python 发送 HTTP 请求、处理响应,并处理常见的网络请求问题。requests 库是 Python 中处理 HTTP 请求的强大工具,熟练掌握它将极大地提升您在 Web 开发中的效率。

在下一节中,我们将介绍如何使用 Python 的 Web 框架(如 Flask 和 Django)来构建 Web 应用。

Last Updated:: 3/17/25, 7:20 PM