dart - 如何在 dart 中使用 request.send() 获取响应正文

我正在做一个上传图片的 api 请求

var request = new http.MultipartRequest("POST", uri);
var response = await request.send()

在 Dart 中使用 flutter 。然后我可以检查响应代码,例如

if (response.statusCode == 200) {
   print('ok');
}

通过其他调用,我也可以获得响应正文

var result = response.body;

但是,当使用 request.send() 时,我似乎不知道如何获取响应正文结果。

非常感谢任何帮助或输入,谢谢!

最佳答案

我查看了 request.send 的文档我返回 Future<StreamedResponse>而不是 Future<Response>

为 StreamedResponse 挖掘更多信息我发现它response.stream这是 ByteStream

这是你可以做些什么来获得字符串中的响应

final response = await request.send();
final respStr = await response.stream.bytesToString();

在我看来,如果您想要流式响应而不是“收集”响应,您应该只使用 request.send。更多关于 streams in dart here

https://stackoverflow.com/questions/55520829/

相关文章:

http - flutter http header

flutter - Flutter 中的 initState 和 super.initState 是

flutter - 在 Dart 中添加/减去迄今为止的月/年?

unicode - 在 Dart 中处理字素簇

flutter - 在 flutter 中将数据作为对象存储在共享首选项中

firebase - flutter firestore,在数组中添加新对象

flutter - 使用 FutureBuilder 时重新加载数据

dart - 在 Flutter 中,在 pubspec.yaml 文件中添加包的最佳方法是什么?

android - 长按时 flutter 触觉反馈

android - Gradle 失败可能是因为这个 Flutter 应用程序中的 AndroidX