邮递员:POST 通过表单数据请求嵌套 JSON 无效(通过原始数据正常)
Postman: POST request of nested JSON via form-data not working (while via raw-data ok)
我想POST以下JSON-通过 Postman 对象:
{
"title": "test_title",
"date": "2021-12-31",
"attachments": [
{
"name": "test_attachment"
}
]
}
当使用 Postman 的原始输入表单作为请求正文时,这工作得很好:我得到一个“201 已创建”的响应。
但是,当使用表单数据 POST 数据时,出现错误 "Invalid data. Expected a dictionary, but got str."
(另请参见下面的屏幕截图)我在这里做错了什么?我尝试了所有其他版本来输入附件键:值对,但到目前为止没有任何效果
你没有做错。
- 如果你想用 json 对象发出请求,那么你在邮递员中使用
raw type
(json)。
- 如果你想上传文件,那么你使用
form-data
- 还有一点,状态201表示请求成功,你的对象已经创建。
var express = require('express')
const multer = require('multer')
const upload = multer()
var app = express()
app.use(express.json());
app.post('/test',upload.none(), function (req, res, next) {
res.send(req.body)
})
app.listen(80, function () {
console.log('web server listening on port 80')
})
以上是一个示例端点,它同时适用于表单数据和 json ,只需对 http://localhost:80/test 执行 post 表单数据和原始 json
你可以看到两者都会得到正确的解析
APIs 只是抽象,它就像一个接受许多属性的函数,你如何解析它取决于实现(api 函数是如何编写的)。
所以答案是“与开发人员交谈”,了解 API 的实施方式及其支持的内容
我成功了! (注意:与有问题的屏幕截图相比,我添加了一些额外的字段。有关详细信息,请参见下文:
我在将 json 放入表单格式时遇到问题,就像 Daniel 在 Postman 中所做的那样。需要帮助弄清楚将级联 json 对象放入表单数据格式需要什么。请在此处查看我正在努力完成的任务。
JSON格式(待填入Postmanform-data部分:
{
"primary_object": {
"child_object_1": [{"id": 12345678, "value": "abc"},{"id": 87654321, "value": "xyz"}],
"child_object_2": [
"first_val",
"second_val"
]
}
}
我想POST以下JSON-通过 Postman 对象:
{
"title": "test_title",
"date": "2021-12-31",
"attachments": [
{
"name": "test_attachment"
}
]
}
当使用 Postman 的原始输入表单作为请求正文时,这工作得很好:我得到一个“201 已创建”的响应。
但是,当使用表单数据 POST 数据时,出现错误 "Invalid data. Expected a dictionary, but got str."
(另请参见下面的屏幕截图)我在这里做错了什么?我尝试了所有其他版本来输入附件键:值对,但到目前为止没有任何效果
你没有做错。
- 如果你想用 json 对象发出请求,那么你在邮递员中使用
raw type
(json)。 - 如果你想上传文件,那么你使用
form-data
- 还有一点,状态201表示请求成功,你的对象已经创建。
var express = require('express')
const multer = require('multer')
const upload = multer()
var app = express()
app.use(express.json());
app.post('/test',upload.none(), function (req, res, next) {
res.send(req.body)
})
app.listen(80, function () {
console.log('web server listening on port 80')
})
以上是一个示例端点,它同时适用于表单数据和 json ,只需对 http://localhost:80/test 执行 post 表单数据和原始 json
你可以看到两者都会得到正确的解析
APIs 只是抽象,它就像一个接受许多属性的函数,你如何解析它取决于实现(api 函数是如何编写的)。
所以答案是“与开发人员交谈”,了解 API 的实施方式及其支持的内容
我成功了! (注意:与有问题的屏幕截图相比,我添加了一些额外的字段。有关详细信息,请参见下文:
我在将 json 放入表单格式时遇到问题,就像 Daniel 在 Postman 中所做的那样。需要帮助弄清楚将级联 json 对象放入表单数据格式需要什么。请在此处查看我正在努力完成的任务。
JSON格式(待填入Postmanform-data部分:
{
"primary_object": {
"child_object_1": [{"id": 12345678, "value": "abc"},{"id": 87654321, "value": "xyz"}],
"child_object_2": [
"first_val",
"second_val"
]
}
}