我正在使用Flutter开发一个应用程序,并且正在使用http库调用我构建的api。
我想发送文件的多部分请求,它也发送文件,但是我不能从服务器收到任何响应,因为返回的对象是StreamResponse。
请告诉我如何获得回复的正文。
代码段:
var request = http.MultipartRequest('POST', Uri.parse('$SERVER_URL/signup'));
request.files.add(await http.MultipartFile.fromPath(
'image',
user.image,
filename: 'image',
contentType: MediaType('multipart/form-data', 'multipart/form-data'),
));
StreamResponse x = await request.send();
//get body of the response
谢谢
答案 0 :(得分:1)
只需使用 http.Response.fromStream()
import 'package:http/http.dart' as http;
var streamedResponse = await request.send()
var response = await http.Response.fromStream(streamedResponse);
答案 1 :(得分:0)
StreamedResponse
有一个stream
吸气剂,正如您所期望的那样,它可以提供字节数组流。
假设您要使用字符而不是字节,则将其推入适当的字符解码器-假设使用UTF-8。
然后您可能希望将所有这些都连接到一个字符串中,因此我们可以使用join
。给你:
print(await x.stream.transform(utf8.decoder).join());