Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 颤振,通过Dio/http向服务器发送嵌套表单数据_Spring_Flutter_Http_Dart_Dio - Fatal编程技术网

Spring 颤振,通过Dio/http向服务器发送嵌套表单数据

Spring 颤振,通过Dio/http向服务器发送嵌套表单数据,spring,flutter,http,dart,dio,Spring,Flutter,Http,Dart,Dio,我想将数据发布到postgres服务器。我需要从注册表中发送信息以及一些图片。所以我需要使用多部分/表单数据。问题是我的注册表非常复杂,有几个嵌套对象(下面我将粘贴其中的一部分,这样你就可以看到我在说什么) 经过两天的研究,我尝试了不同的选择,但我无法让它发挥作用。无论是使用http还是Dio包,似乎Dio包中的FormData.fromMap()都在不直接格式化它 有没有办法让它工作,或者我已经请后端的人为两个不同的请求分离注册表和图片,并将其作为json发送 这是我表格的一部分: FormD

我想将数据发布到postgres服务器。我需要从注册表中发送信息以及一些图片。所以我需要使用多部分/表单数据。问题是我的注册表非常复杂,有几个嵌套对象(下面我将粘贴其中的一部分,这样你就可以看到我在说什么)

经过两天的研究,我尝试了不同的选择,但我无法让它发挥作用。无论是使用http还是Dio包,似乎Dio包中的FormData.fromMap()都在不直接格式化它

有没有办法让它工作,或者我已经请后端的人为两个不同的请求分离注册表和图片,并将其作为json发送

这是我表格的一部分:

FormData.fromMap({
      "questionnaire": {
        "horse": {"name": "Abisynia", "breed": "demo", "sex": "male"},
        "owner": {
          "personal_data": "John Doe",
          "email": "asasdasss@gmail.com",
          "phone_number": "3556234432"
        },
        "breakfast": {"name": "morning", "manufacturer": "Adasa", "amount": 1},
        "dinner": {"name": "noon", "manufacturer": "Aasd", "amount": 2},
        "supper": {"name": "evening", "manufacturer": "ASds", "amount": 3}
      }
    })
以下是我与邮递员一起发帖时服务器发送内容的日志(它可以工作!):

以下是我尝试通过我的应用程序发布的日志:


如果您有任何想法,我将不胜感激……

在将嵌套JSON传递给FormData之前对其进行编码。它会起作用的。例如:

String horseJson = json.encode({"name": "Abisynia", "breed": "demo", "sex": "male"});
String ownerJson = json.encode({
          "personal_data": "John Doe",
          "email": "asasdasss@gmail.com",
          "phone_number": "3556234432"
        });
String breakfastJson = json.encode({"name": "morning", "manufacturer": "Adasa", "amount": 1});
String dinnerJson = json.encode({"name": "noon", "manufacturer": "Aasd", "amount": 2});
String supperJson = json.encode({"name": "evening", "manufacturer": "ASds", "amount": 3});
String questiinnaireJson = json.encode({
        "horse": horseJson,
        "owner": ownerJson,
        "breakfast": breakfastJson,
        "dinner": dinnerJson,
        "supper": supperJson
      });
FormData formData = FormData.fromMap({
      "questionnaire": questiinnaireJson
    });
var response = await dio.post(url, data: formData, options: Options(headers:_headers));

在将嵌套JSON传递给FormData之前对其进行编码。它会起作用的。例如:

String horseJson = json.encode({"name": "Abisynia", "breed": "demo", "sex": "male"});
String ownerJson = json.encode({
          "personal_data": "John Doe",
          "email": "asasdasss@gmail.com",
          "phone_number": "3556234432"
        });
String breakfastJson = json.encode({"name": "morning", "manufacturer": "Adasa", "amount": 1});
String dinnerJson = json.encode({"name": "noon", "manufacturer": "Aasd", "amount": 2});
String supperJson = json.encode({"name": "evening", "manufacturer": "ASds", "amount": 3});
String questiinnaireJson = json.encode({
        "horse": horseJson,
        "owner": ownerJson,
        "breakfast": breakfastJson,
        "dinner": dinnerJson,
        "supper": supperJson
      });
FormData formData = FormData.fromMap({
      "questionnaire": questiinnaireJson
    });
var response = await dio.post(url, data: formData, options: Options(headers:_headers));

嘿,你找到解决办法了吗?我在同一个问题上纠结了一段时间。你找到解决办法了吗?我在同一个问题上纠缠了一段时间