HTTP操作利器——Requests库快速上手指南
2023-11-22 15:13:24
1. Requests库简介
Requests是一个简单、灵活且易于使用的Python HTTP库,它允许您使用Python语言轻松地发送HTTP请求并处理响应结果。Requests库支持多种HTTP方法,包括GET、POST、DELETE、PUT等,并且提供了许多有用的特性,如参数、标头、超时、重试等,帮助您更轻松地进行HTTP操作。
2. 安装Requests库
安装Requests库非常简单,您可以在命令行中使用以下命令进行安装:
pip install requests
3. 发送HTTP请求
3.1 GET请求
GET请求是最常用的HTTP请求方法之一,它用于从服务器获取资源。要使用Requests库发送GET请求,您可以使用以下代码:
import requests
url = 'http://example.com'
response = requests.get(url)
上面的代码发送了一个GET请求到URL为http://example.com
的服务器,并把响应结果存储在response
变量中。您可以使用response.status_code
属性来获取HTTP状态码,使用response.headers
属性来获取响应头,使用response.content
属性来获取响应内容。
3.2 POST请求
POST请求通常用于向服务器发送数据。要使用Requests库发送POST请求,您可以使用以下代码:
import requests
url = 'http://example.com/submit'
data = {'name': 'John Doe', 'email': 'johndoe@example.com'}
response = requests.post(url, data=data)
上面的代码发送了一个POST请求到URL为http://example.com/submit
的服务器,并把数据data
发送给服务器。您可以使用response.status_code
属性来获取HTTP状态码,使用response.headers
属性来获取响应头,使用response.content
属性来获取响应内容。
3.3 DELETE请求
DELETE请求用于从服务器删除资源。要使用Requests库发送DELETE请求,您可以使用以下代码:
import requests
url = 'http://example.com/delete/123'
response = requests.delete(url)
上面的代码发送了一个DELETE请求到URL为http://example.com/delete/123
的服务器,并删除ID为123
的资源。您可以使用response.status_code
属性来获取HTTP状态码,使用response.headers
属性来获取响应头,使用response.content
属性来获取响应内容。
3.4 PUT请求
PUT请求用于更新服务器上的资源。要使用Requests库发送PUT请求,您可以使用以下代码:
import requests
url = 'http://example.com/update/123'
data = {'name': 'John Doe', 'email': 'johndoe@example.com'}
response = requests.put(url, data=data)
上面的代码发送了一个PUT请求到URL为http://example.com/update/123
的服务器,并更新ID为123
的资源。您可以使用response.status_code
属性来获取HTTP状态码,使用response.headers
属性来获取响应头,使用response.content
属性来获取响应内容。
4. Requests库的其他特性
4.1 参数
在发送HTTP请求时,您可以使用参数来指定要发送的数据。要使用Requests库发送参数,您可以使用以下代码:
import requests
url = 'http://example.com/search'
params = {'q': 'python'}
response = requests.get(url, params=params)
上面的代码发送了一个GET请求到URL为http://example.com/search
的服务器,并把参数q
的值设置为python
。您可以使用response.status_code
属性来获取HTTP状态码,使用response.headers
属性来获取响应头,使用response.content
属性来获取响应内容。
4.2 标头
在发送HTTP请求时,您可以使用标头来指定请求的附加信息。要使用Requests库发送标头,您可以使用以下代码:
import requests
url = 'http://example.com/api'
headers = {'Content-Type': 'application/json'}
response = requests.post(url, headers=headers)
上面的代码发送了一个POST请求到URL为http://example.com/api
的服务器,并把标头Content-Type
的值设置为application/json
。您可以使用response.status_code
属性来获取HTTP状态码,使用response.headers
属性来获取响应头,使用response.content
属性来获取响应内容。
4.3 超时
在发送HTTP请求时,您可以使用超时来指定请求的超时时间。要使用Requests库设置超时,您可以使用以下代码:
import requests
url = 'http://example.com/slow'
timeout = 10
response = requests.get(url, timeout=timeout)
上面的代码发送了一个GET请求到URL为http://example.com/slow
的服务器,并把超时时间设置为10秒。如果请求在10秒内没有得到响应,则会引发一个requests.exceptions.Timeout
异常。
4.4 重试
在发送HTTP请求时,您可以使用重试来指定请求的重试次数。要使用Requests库设置重试,您可以使用以下代码:
import requests
url = 'http://example.com/unreliable'
retries = 3
response = requests.get(url, retries=retries)
上面的代码发送了一个GET请求到URL为http://example.com/unreliable
的服务器,并把重试次数设置为3。如果请求在第一次尝试时失败,则会自动重试两次。