前言
使用 python 的 requests
库发送 http 请求是非常简单和直观的。requests
库提供了丰富的 api,可以发送各种类型的 http 请求,如 get
、post
、put
、delete
等。下面我会介绍一些常用的 http 请求方式,并提供实际的代码示例。
1. 安装 requests 库
如果你还没有安装 requests
库,可以通过以下命令进行安装:
pip install requests
2. 发送 get 请求
get
请求通常用于从服务器获取数据。例如,你想获取一个网页的内容,可以使用以下代码:
import requests # 发送 get 请求 response = requests.get('https://www.example.com') # 打印返回的状态码 print('状态码:', response.status_code) # 打印返回的内容(文本) print('返回内容:', response.text)
在这个例子中,我们使用 requests.get()
方法发送 get 请求,response.status_code
获取请求的状态码,response.text
返回服务器的响应内容。
3. 发送 post 请求
post
请求通常用于提交数据到服务器。例如,提交一个表单数据或者向服务器提交一些 json 数据,可以使用以下代码:
import requests # 发送 post 请求并提交数据 data = {'username': 'testuser', 'password': 'testpassword'} response = requests.post('https://www.example.com/login', data=data) # 打印返回的状态码和返回内容 print('状态码:', response.status_code) print('返回内容:', response.text)
在这个例子中,我们使用 requests.post()
方法发送 post 请求,并传递一个字典 data
作为请求的表单数据。
4. 发送带有 json 数据的 post 请求
如果你需要发送 json 格式的数据,可以使用 json
参数:
import requests import json # 要发送的 json 数据 data = {'name': 'john', 'age': 30} # 发送 post 请求并提交 json 数据 response = requests.post('https://www.example.com/api', json=data) # 打印返回的状态码和返回内容 print('状态码:', response.status_code) print('返回内容:', response.json())
在这个例子中,我们使用 json=data
直接将字典数据转换为 json 格式并发送给服务器。
5. 发送带有 headers 的请求
有时我们需要在请求中添加一些 http 头部信息(如 user-agent、authorization 等)。可以通过 headers
参数来指定:
import requests # 设置请求头 headers = { 'user-agent': 'mozilla/5.0', 'authorization': 'bearer your_token' } # 发送带有头部信息的 get 请求 response = requests.get('https://www.example.com', headers=headers) # 打印返回的状态码和返回内容 print('状态码:', response.status_code) print('返回内容:', response.text)
6. 发送带有查询参数的 get 请求
有时我们需要在 url 中添加查询参数,可以通过 params
参数来传递:
import requests # 查询参数 params = {'q': 'python', 'page': 1} # 发送 get 请求并携带查询参数 response = requests.get('https://www.example.com/search', params=params) # 打印返回的状态码和返回内容 print('状态码:', response.status_code) print('返回内容:', response.text)
7. 处理响应
requests
库的响应对象提供了很多方法来帮助我们处理响应数据:
response.status_code
: 获取响应的状态码。response.text
: 获取响应的文本内容(通常是 html 或 json 格式)。response.json()
: 如果响应内容是 json 格式,可以用此方法直接将响应解析为 json 对象。response.content
: 获取响应的原始内容(字节格式),适用于二进制文件如图片、音频等。
8. 处理请求超时
有时请求可能会因为网络问题或服务器超时而失败。可以通过 timeout
参数来设置请求的超时时间:
import requests try: response = requests.get('https://www.example.com', timeout=5) print('状态码:', response.status_code) except requests.exceptions.timeout: print("请求超时!")
在这个例子中,我们设置了一个 5 秒的超时时间。如果请求在 5 秒内没有完成,就会抛出一个 timeout
异常。
总结
使用 requests
库来发送 http 请求是非常方便和直观的。它能够帮助我们高效地处理网络请求,支持各种 http 方法、查询参数、请求头、json 数据处理等。只要你熟练掌握这些基本用法,就能轻松地在 python 中进行 http 请求操作!
以上就是使用python的requests库来发送http请求的操作指南的详细内容,更多关于python requests发送http请求的资料请关注代码网其它相关文章!
发表评论