request post函数 data参数 json参数
flask 接收post请求 get_json jsonify
input=
- None
- error 415 on both when get_json in flask
- {}
- data
- error 415 when get_json
- json
- {} 通过get_json 和 jsonify
- 1
- data
- TypeError: 'body' must be a bytes-like object, file-like object, or iterable. On data
- json
- 1 通过get_json 和 jsonify
data
用于普通表单形式的POST请求,如果不指定content-type
,默认为application/x-www-form-urlencoded
。json
用于JSON形式的POST请求,如果不指定content-type
,默认为application/json
get请求不允许浏览器地址栏直接访问
requests库 post函数
- 使用
data
参数时,数据会被编码成表单形式。 - 使用
json
参数时,数据会被自动转换为 JSON 格式。
在 Python 中,使用 requests
库发送 POST 请求时,我们可以选择不同的参数来传递数据,其中两个常用的参数是 data
和 json
。让我们来看一下它们之间的区别以及如何使用。
data
参数:
- 当使用
data
参数发送 POST 请求时,数据会被放在请求主体中。 - 默认情况下,
data
参数的编码方式是application/x-www-form-urlencoded
,类似于普通表单提交。 - 数据格式为键值对,通过 URL 编码后使用
&
符号连接。 - 这是最常见的编码方式,适用于浏览器原生支持的表单数据。
- 示例代码:
import requests
url = "http://httpbin.org/post"
data = {"a_test": 112233, "b_test": 223344}
response = requests.post(url=url, data=data)
print(response.json())
- 在上述代码中,我们使用了相同的字典,通过
data
参数发送了相同的数据。
json
参数:
- 当使用
json
参数发送 POST 请求时,数据会被自动转换为 JSON 格式。 - 适用于提交复杂的结构化数据,方便各种类型的数据交互。
- 示例代码:
url = "http://httpbin.org/post"
data = {"test": "test123", "test22": [111, 222, 333]}
response = requests.post(url=url, json=data)
print(response.json())
- 在上述代码中,我们同样使用了相同的字典,但这次使用了
json
参数。
总结:
- 使用
data
参数时,数据会被编码成表单形式。 - 使用
json
参数时,数据会被自动转换为 JSON 格式。 - 根据请求头中的
Content-Type
类型来选择使用哪个参数¹²³⁴。
源: 与必应的对话, 2024/4/22
(1) requests中post参数data和json区别 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/202978890.
(2) Python request里面data、json、params传参方式的不同 - CSDN博客. https://blog.csdn.net/Jason_WangYing/article/details/108256804.
(3) Python requests.post方法中data与json参数区别 - xiondun - 博客园. https://www.cnblogs.com/xiondun/p/13684694.html.
(4) Python接口自动化-requests模块之post请求 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/140372568.
(5) undefined. http://httpbin.org.
(6) undefined. http://httpbin.org/post.