HTTP请求未在响应中执行-颤振/飞镖

HTTP请求未在响应中执行-颤振/飞镖,http,flutter,dart,Http,Flutter,Dart,我正在尝试对用C#(.NETCore)编写的Web API执行请求。端点运行一个异步函数并返回一个带有操作结果的JSON 在Dart中,我无法得到回应then()或catchError()只是不执行 端点获取有效负载中的产品。当我只发送一个产品时,我可以得到回复,但当我发送两个或更多产品时,我不能 有效载荷为: http.post('http://192.168.0.10:5000/api/v1/oficina/dart', 正文:JSONECODE({ “usuario”:“edigleyss

我正在尝试对用C#(.NETCore)编写的Web API执行请求。端点运行一个异步函数并返回一个带有操作结果的JSON

在Dart中,我无法得到回应then()catchError()只是不执行

端点获取有效负载中的产品。当我只发送一个产品时,我可以得到回复,但当我发送两个或更多产品时,我不能

有效载荷为:

http.post('http://192.168.0.10:5000/api/v1/oficina/dart',
正文:JSONECODE({
“usuario”:“edigleyssonsilva”,
“senha”:“123456”,
“codEmp”:1,
“codFil”:1,
“produtos”:[
{
“ccuRes”:“160”,
“codEmp”:1,
“codFil”:1,
“codPro”:“570.0001”,
“codTns”:“90250”,
“datPrv”:“2020-02-17”,
“日期”:“2020-02-17”,
“qtdEme”:2
}
]
}),
标题:{'Content-Type':'application/json'})
.然后((value)=>打印(value.body))
.catchError((err){
印刷品(“Ocorreu um erro”);
打印(错误);
});
我已经在Postman、Angular应用程序和用Dart编写的测试文件上用相同的负载测试了相同的端点,这非常有效


所以,我不知道为什么它在Flatter中不起作用,不太清楚你共享的代码,或者也共享调用这个函数的代码,但是你也可以尝试,将你的身体分配给一个Map对象,然后用json.encode对它进行编码,因为JSONECODE在新版本中被弃用,尽管它可以工作,但是你应该用新的方式来编码它。 此外,在执行任何异步工作时,都应该使用async Wait

Future<void> request() async {

 Map<String, String> headers = {
      'Content-type': 'application/json',
      'Accept': 'application/json',
    };
Map body = {"usuario": "edigleyssonsilva",
                    "senha": "123456",
                    "codEmp": 1,
                    "codFil": 1,
                    "produtos": [
                      {
                        "ccuRes": "160",
                        "codEmp": 1,
                        "codFil": 1,
                        "codPro": "570.0001",
                        "codTns": "90250",
                        "datPrv": "2020-02-17",
                        "datEme": "2020-02-17",
                        "qtdEme": 2
                      }
                    ]};
final response = await http.post(url, 
                body: json.encode(body), 
                headers: headers,
              ).catchError((err) {
                print('Ocorreu um erro');
                print(err);
              });
print('Response: ${response.body}');
}
Future request()异步{
映射头={
“内容类型”:“应用程序/json”,
“接受”:“应用程序/json”,
};
地图正文={“usuario”:“edigleyssonsilva”,
“senha”:“123456”,
“codEmp”:1,
“codFil”:1,
“produtos”:[
{
“ccuRes”:“160”,
“codEmp”:1,
“codFil”:1,
“codPro”:“570.0001”,
“codTns”:“90250”,
“datPrv”:“2020-02-17”,
“日期”:“2020-02-17”,
“qtdEme”:2
}
]};
最终响应=等待http.post(url,
body:json.encode(body),
标题:标题,
).catchError((err){
印刷品(“Ocorreu um erro”);
打印(错误);
});
打印('Response:${Response.body}');
}

对于您共享的代码,现在还不太清楚,您也可以共享调用此函数的代码,但您也可以尝试,将您的身体分配给一个Map对象,然后使用json.encode对其进行编码,因为新版本中不推荐使用JSONECODE,尽管它可以工作,但您应该使用新的方式对其进行编码。 此外,在执行任何异步工作时,都应该使用async Wait

Future<void> request() async {

 Map<String, String> headers = {
      'Content-type': 'application/json',
      'Accept': 'application/json',
    };
Map body = {"usuario": "edigleyssonsilva",
                    "senha": "123456",
                    "codEmp": 1,
                    "codFil": 1,
                    "produtos": [
                      {
                        "ccuRes": "160",
                        "codEmp": 1,
                        "codFil": 1,
                        "codPro": "570.0001",
                        "codTns": "90250",
                        "datPrv": "2020-02-17",
                        "datEme": "2020-02-17",
                        "qtdEme": 2
                      }
                    ]};
final response = await http.post(url, 
                body: json.encode(body), 
                headers: headers,
              ).catchError((err) {
                print('Ocorreu um erro');
                print(err);
              });
print('Response: ${response.body}');
}
Future request()异步{
映射头={
“内容类型”:“应用程序/json”,
“接受”:“应用程序/json”,
};
地图正文={“usuario”:“edigleyssonsilva”,
“senha”:“123456”,
“codEmp”:1,
“codFil”:1,
“produtos”:[
{
“ccuRes”:“160”,
“codEmp”:1,
“codFil”:1,
“codPro”:“570.0001”,
“codTns”:“90250”,
“datPrv”:“2020-02-17”,
“日期”:“2020-02-17”,
“qtdEme”:2
}
]};
最终响应=等待http.post(url,
body:json.encode(body),
标题:标题,
).catchError((err){
印刷品(“Ocorreu um erro”);
打印(错误);
});
打印('Response:${Response.body}');
}

你所说的“但是当ai发送两个或多个我不能”是什么意思?有效载荷。当我发送一个时,数组produtos非常有效。如果我再发送两个CACTERROR()或then()不起作用,我想是的。你能告诉我在哪里吗?但这是代码片段。在测试中写的基本相同,并且它可以工作。你说我认为请求中有一个bug。这是一个请求,你说的是两个?你说的“但是当我发送两个或更多的时候我不能”是什么意思?有效载荷。当我发送一个时,数组produtos非常有效。如果我再发送两个CACTERROR()或then()不起作用,我想是的。你能告诉我在哪里吗?但这是代码片段。在测试中写的基本相同,并且它可以工作。你说我认为请求中有一个bug。这是一个请求,你说的是两个?谢谢!但是不起作用!后端正常运行请求(请求完全发送)。问题是我无法得到回复。我已经编辑了我的答案,你可以在请求执行后调用结果。是的,我看到了。问题依然存在。我也用过等待,但不起作用。谢谢!但是不起作用!后端正常运行请求(请求完全发送)。问题是我无法得到回复。我已经编辑了我的答案,你可以在请求执行后调用结果。是的,我看到了。问题依然存在。我也用过等待,但不起作用。