Python(requests.post()、requests.get())
1. requests.post()
requests.post 是 Python 中 requests 库提供的一个函数,用于发送 HTTP POST 请求。这个函数的基本语法如下:
import requests
response = requests.post(url, data=None, json=None, headers=None, params=None, auth=None, timeout=None)
其中参数的含义如下:
url: 字符串,表示请求的目标 URL。data: 字典、字节序列或文件,作为请求的正文发送给服务器。json: JSON 可序列化的对象,作为请求的正文发送给服务器。如果同时传递了data和json,json参数会覆盖data。headers: 字典,包含请求头的键值对。params: 字典或字节序列,作为 URL 的查询参数。auth: 元组,表示 HTTP 认证的用户名和密码。timeout: 超时时间,以秒为单位,表示在请求过程中等待服务器响应的最大时间。
这个函数会返回一个 Response 对象,其中包含了服务器的响应信息。你可以通过这个对象来访问服务器返回的内容、状态码等信息。
一个简单的例子:
import requests
url = "https://example.com/api"
data = {"key1": "value1", "key2": "value2"}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=data, headers=headers)
print(response.status_code)
print(response.text)
在这个例子中,我们使用 requests.post 发送了一个 JSON 数据到指定的 URL,并通过响应对象访问了服务器返回的状态码和响应内容。
2. requests.get()
requests.get 是 Python 中 requests 库提供的一个函数,用于发送 HTTP GET 请求。这个函数的基本语法如下:
import requests
response = requests.get(url, params=None, headers=None, auth=None, timeout=None)
其中参数的含义如下:
url: 字符串,表示请求的目标 URL。params: 字典或字节序列,作为 URL 的查询参数。headers: 字典,包含请求头的键值对。auth: 元组,表示 HTTP 认证的用户名和密码。timeout: 超时时间,以秒为单位,表示在请求过程中等待服务器响应的最大时间。
这个函数会返回一个 Response 对象,其中包含了服务器的响应信息。你可以通过这个对象来访问服务器返回的内容、状态码等信息。
一个简单的例子:
import requests
url = "https://example.com/api"
params = {"key1": "value1", "key2": "value2"}
headers = {"Authorization": "Bearer <your_access_token>"}
response = requests.get(url, params=params, headers=headers)
print(response.status_code)
print(response.text)
在这个例子中,我们使用 requests.get 向指定的 URL 发送了一个带有查询参数和自定义请求头的 GET 请求,并通过响应对象访问了服务器返回的状态码和响应内容。
3. requests.post() 与 requests.get() 区别
requests.post 和 requests.get 是 requests 库中用于发送 HTTP 请求的两个主要函数,它们有以下区别:
- HTTP 方法:
requests.post: 用于发送 HTTP POST 请求,通常用于向服务器提交数据,如表单数据、JSON 数据等。requests.get: 用于发送 HTTP GET 请求,通常用于从服务器获取数据,将参数附加在 URL 上。
- 传递数据:
requests.post:- 使用
data参数传递数据,通常用于发送表单数据。 - 可以使用
json参数传递 JSON 数据,方便发送 JSON 格式的数据。
- 使用
requests.get:- 使用
params参数传递数据,将参数附加在 URL 后面,形成查询字符串。
- 使用
- 请求体:
requests.post: 允许发送包含在请求体中的数据,适合发送大量数据。requests.get: 通常不包含请求体,数据主要通过 URL 的查询字符串传递。
- 安全性:
requests.post: 因为数据传递在请求体中,相对于 URL,POST 请求更适合传递敏感数据。requests.get: 由于参数附加在 URL 上,可能会在 URL 中留下痕迹,不适合传递敏感数据。
- 缓存:
requests.post: 不会被浏览器缓存。requests.get: 可能会被浏览器缓存,特别是对于相同的 URL 和参数。
- 用途:
requests.post: 适用于向服务器提交数据,如登录、上传文件等。requests.get: 适用于从服务器获取数据,如获取页面、API 数据等。
示例:
import requests
# POST 请求
post_url = "https://example.com/api"
post_data = {"key1": "value1", "key2": "value2"}
post_response = requests.post(post_url, data=post_data)
# GET 请求
get_url = "https://example.com/api"
get_params = {"key1": "value1", "key2": "value2"}
get_response = requests.get(get_url, params=get_params)
总的来说,选择使用 requests.post 还是 requests.get 取决于你的具体需求,即是要向服务器提交数据还是从服务器获取数据。

浙公网安备 33010602011771号