簡體   English   中英

郵遞員:通過表單數據的嵌套 JSON 的 POST 請求不起作用(而通過原始數據可以)

[英]Postman: POST request of nested JSON via form-data not working (while via raw-data ok)

我想通過 Postman 發布以下 JSON 對象:

{
    "title": "test_title",
    "date": "2021-12-31",
    "attachments": [
        {
            "name": "test_attachment"
        }
    ]
}

當使用 Postman 的原始輸入表單作為請求正文時,這非常有效:我得到了“201 Created”響應。

但是,當使用表單數據 POST 數據時,我收到錯誤"Invalid data. Expected a dictionary, but got str." (另見下面的截圖)我在這里做錯了什么? 我嘗試了所有其他版本來輸入附件鍵:值對,但到目前為止沒有任何效果在此處輸入圖像描述

我設法使它工作! (注意:與有問題的屏幕截圖相比,我添加了一些額外的字段。有關詳細信息,請參見下文:

在此處輸入圖像描述

你沒有做錯什么。

  • 如果您想使用 json 對象發出請求,那么您可以在 postman 中使用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')
})

上面是一個示例端點,它適用於 form-data 和 json ,只需使用表單數據和原始 json 發布到 http://localhost:80/test

你可以看到兩者都會被正確解析

API只是抽象,它就像一個包含許多屬性的函數,你如何解析它取決於實現(api函數是如何編寫的)。

所以答案是“與開發人員交談”,了解 API 的實現方式及其支持的內容

我在將 json 放入表單格式時遇到問題,就像 Daniel 在 Postman 中所做的那樣。 需要幫助弄清楚將級聯 json 對象放入表單數據格式需要什么。 請在此處查看我正在嘗試完成的工作。

JSON 格式(填寫到 Postman 表單數據部分:

{
  "primary_object": {
    "child_object_1": [{"id": 12345678, "value": "abc"},{"id": 87654321, "value": "xyz"}],
    "child_object_2": [
      "first_val",
      "second_val"
    ]
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM