簡體   English   中英

如何在flutter Dio包中的formData中發布對象?

[英]How to post an object in formData in flutter Dio package?

我有一個“modelCharacteristics”對象,其中包含 modelHeight、modelWeight 和 modelSize 對象。 如何將 JSON 對象插入 dio 的 FormData 以發布它?

我試圖像在 Postman 中那樣做,但這不起作用。

var formData = dio.FormData.fromMap({
    'category': categoryId,
    'name': name,
    'price': int.parse(price),
    'color': color,
    'size': sizes,
    'description': description,
    'material': material,
    'countryProducer': countryProducer,
    "style": style,
    "countInStock": int.parse(countInStock),
    "modelCharacteristics[modelHeight]": modelCharacteristics.modelHeight.toInt(),
    "modelCharacteristics[modelWeight]": modelCharacteristics.modelWeight.toInt(),
    "modelCharacteristics[modelSize]": modelCharacteristics.modelSize,)}

事實上,我發布的代碼是正確的! 存在導致發布請求無法正常工作的內部代碼錯誤。 但是,回顧一下未來的軟件工程師:

例如,如果您有一個像這樣的復雜 JSON 對象,並且想要使用 FormData 進行 POST:

{
"Model" : { "ModelA" : "1", "ModelB" : "2" }
}

然后像這樣寫你的字段

"Model[ModelA]": "1",
"Model[ModelB]": "2"

要使用 formdata 發送 json 數據,您需要通過 json 編碼將其作為 MultiPartFile 發送,並將 Multipartfile 的內容類型指定為“application/json”。 像這樣:

final data = FormData.fromMap({
    "file": await MultipartFile.fromFile(
      path,
      filename: name,
    ),
    "jsonData": MultipartFile.fromString(
      jsonEncode({"name": "user_name"}),
      contentType: MediaType.parse('application/json'),
    ),
  },
);

添加其余代碼以獲得更准確的答案,請查看https://pub.dev/packages/dio文檔。

暫無
暫無

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

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