继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

如何在Python中发送HTTP请求:使用requests库入门指南

慕容3067478
关注TA
已关注
手记 195
粉丝 3
获赞 21
概述

文章主要介绍如何使用Python的requests库进行HTTP请求管理,覆盖GET、POST等请求类型,以及参数添加、头信息设置、错误处理等关键操作。通过详尽的示例代码解释了如何创建和处理HTTP请求与响应,适用于网页内容获取、API数据交互等场景,旨在简化网络编程过程,使开发者能够专注于业务逻辑。

引入HTTP请求与Python中的requests库

简介HTTP协议与请求类型

HTTP(HyperText Transfer Protocol)是一种在互联网上进行数据交换的应用层协议。它基于请求-响应模型,支持客户端与服务器之间进行数据传输。HTTP协议包含多种请求类型,如GET、POST、PUT、DELETE,分别用于获取资源、提交数据、更新或删除资源。

使用requests库简化Python中的网络请求

Python的requests库是处理HTTP请求和响应的理想工具,它提供了简洁、用户友好的API,无需深入理解底层细节即可完成复杂的网络操作。requests库简化了HTTP交互过程,支持异步操作、认证、重试、错误处理与HTTP响应管理,使开发者能够专注于业务逻辑而非网络编程细节。

安装requests库

安装requests库的命令如下:

pip install requests

确认已成功安装requests库,通过运行以下Python代码验证:

import requests

print(requests.__version__)

基本HTTP请求的制作

创建GET请求的流程

GET请求用于从服务器获取资源。通过以下代码实现GET请求:

import requests

# 指定URL
url = 'https://api.example.com/data'

# 执行GET请求
response = requests.get(url)

# 检查响应状态码
if response.status_code == 200:
    # 解析响应内容(JSON格式)
    data = response.json()
    print('获取的数据是:', data)
else:
    print('请求失败,状态码:', response.status_code)

创建POST请求的流程

POST请求用于向服务器提交数据或创建资源。使用requests.post()方法创建POST请求示例:

import requests

# 指定URL
url = 'https://api.example.com/upload'

# 提交的数据(JSON格式)
data = {'key': 'value'}

# 设置请求头
headers = {'Content-Type': 'application/json'}

# 执行POST请求
response = requests.post(url, json=data, headers=headers)

# 检查响应状态码
if response.status_code == 200:
    # 解析响应内容
    print('响应内容:', response.json())
else:
    print('请求失败,状态码:', response.status_code)

添加URL、参数、数据和头信息的示例代码

在请求中添加URL参数或额外的请求头信息:

import requests

# 指定URL
url = 'https://api.example.com/search'

# 参数字典
params = {'query': 'example', 'page': 1}

# 请求头
headers = {'Authorization': 'Bearer your-token'}

# 执行GET请求
response = requests.get(url, params=params, headers=headers)

# 检查响应状态码
if response.status_code == 200:
    # 解析响应内容
    result = response.json()
    print('搜索结果:', result)
else:
    print('请求失败,状态码:', response.status_code)

处理HTTP响应

检查HTTP响应状态码

确保请求成功,检查HTTP响应的状态码:

if response.status_code == 200:
    # 解析响应内容
    print('请求成功')
else:
    print('请求失败,状态码:', response.status_code)

解析与获取响应内容的方法

解析响应内容,如果响应为JSON格式,使用.json()方法获取数据:

import requests

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

if response.status_code == 200:
    weather_data = response.json()
    print('当前天气:', weather_data['current']['temperature'])
else:
    print('请求失败')

错误处理与异常管理

错误处理是网络编程的关键部分。requests库提供了异常类型来捕获各种错误,例如requests.exceptions.RequestException

import requests

try:
    response = requests.get('https://api.example.com/endpoint')
    response.raise_for_status()  # 检查状态码是否在200-299之间
except requests.exceptions.HTTPError as err:
    print('HTTP错误:', err)
except requests.exceptions.RequestException as err:
    print('请求错误:', err)

应用示例

使用requests库获取网页内容的实例

获取网页的HTML内容:

import requests

url = 'https://www.example.com'
response = requests.get(url)

if response.status_code == 200:
    html_content = response.text
    print('网页内容前100个字符:', html_content[:100])
else:
    print('请求失败')

发送API请求获取数据的实操

API请求是现代应用程序中常见的交互方式。以下是一个简单的天气API请求实例:

import requests

api_key = 'your_api_key'
url = f'https://api.weatherapi.com/v1/current.json?key={api_key}&q=London'

response = requests.get(url)

if response.status_code == 200:
    weather = response.json()
    print(f'当前温度: {weather["current"]["temp_c"]}°C')
else:
    print('请求失败')

小结

本指南介绍了使用Python的requests库进行HTTP请求的基础知识,包括各种请求类型的创建、参数与头信息的添加、响应解析与错误处理。通过上述实例代码,开发者能够更有效地应用requests库进行网络数据交互,专注于构建业务逻辑,而无需过多关注网络编程的细节。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP