HTTP 请求未在响应中执行 - Flutter/Dart
Posted
技术标签:
【中文标题】HTTP 请求未在响应中执行 - Flutter/Dart【英文标题】:The HTTP request is not being executed in response - Flutter/Dart 【发布时间】:2020-06-02 09:01:11 【问题描述】:我正在尝试对用 C# (.NET Core) 编写的 Web API 执行请求。端点运行一个异步函数并返回一个带有操作结果的 JSON。
在 Dart 中我无法得到响应。 then() 或 catchError() 只是不执行。
端点在有效负载中获取产品。当我只发送一个产品时,我可以得到响应,但当我发送两个或更多时,我不能。
有效载荷是:
http .post('http://192.168.0.10:5000/api/v1/oficina/dart',
body: jsonEncode(
"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
]
),
headers: 'Content-Type': 'application/json')
.then((value) => print(value.body))
.catchError((err)
print('Ocorreu um erro');
print(err);
);
我已经在 Postman、Angular 应用和用 Dart 编写的测试文件上测试了具有相同有效负载的相同端点,并且效果很好。
所以,我不知道为什么它在 Flutter 中不起作用
【问题讨论】:
“但是当ai发送两个或更多时我不能”是什么意思? 有效载荷。当我发送一个数组 produtos 时,它工作得很好。如果我再发送两个 cacthError() 或 then() 不起作用。 我想是的。你能告诉我在哪里吗? 但这是代码 sn-p。测试中写的基本相同,并且可以正常工作。你说我认为请求中有一个错误。 这是一个请求,你说的是两个? 【参考方案1】:你分享的代码不是很清楚,要么也分享调用这个函数的代码,但你也可以尝试,将你的身体分配给一个 Map 对象,然后用 json.encode 对其进行编码,因为 jsonEncode 是在新版本中已弃用,尽管它可以工作,但您应该使用新的方式对其进行编码。 此外,您应该在执行任何异步工作时使用 async-await。
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');
【讨论】:
谢谢!但不起作用! Tha后端正常运行请求(请求完美发送)。问题是我无法得到响应。 我已经编辑了我的答案,您可以在您的请求执行后调用您的结果。 是的,我看到了。问题仍然存在。我也使用了 await 但不起作用。以上是关于HTTP 请求未在响应中执行 - Flutter/Dart的主要内容,如果未能解决你的问题,请参考以下文章