在Python的 requests
库中,data
和 json
参数是用于发送HTTP请求时传递数据的两种方式,它们各自适用于不同的场景和需求。
使用 data
参数
data
参数主要用于发送表单数据(如 application/x-www-form-urlencoded
编码的数据)或者作为非JSON格式的原始数据发送。当你需要模拟表单提交时,data
参数是非常适合的。
示例代码:
import requests
# 发送表单数据
payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=payload)
print(response.text)
# 发送文本数据
response = requests.post('https://httpbin.org/post', data='Raw text data')
print(response.text)
在这个例子中,第一个请求演示了如何发送表单数据,第二个请求则展示了如何发送纯文本数据。
使用 json
参数
json
参数主要用于发送JSON格式的数据。当使用 json
参数时,requests
会自动将字典编码为JSON格式,同时也会自动设置 Content-Type
头为 application/json
。
示例代码:
import requests
# 发送JSON数据
payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', json=payload)
print(response.text)
在这个例子中,我们发送了一个JSON格式的请求体。使用 json
参数可以简化JSON数据的发送过程,因为它自动处理了编码和设置正确的 Content-Type
头。
选择 data
或 json
- 当需要发送表单数据时(如模拟网页表单提交),应使用
data
参数。 - 当需要发送JSON数据时(如与REST API交互),应使用
json
参数。
选择 data
或 json
取决于你的具体需求,以及服务器端期望接收的数据格式。