我正在做一个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()时,我似乎找不到如何获得响应主体结果。
任何帮助或输入是非常感谢,谢谢!
8条答案
按热度按时间mbzjlibv1#
我检查了request.send的文档,返回了
Future<StreamedResponse>
而不是Future<Response>
深入挖掘StreamedResponse,我发现它是
response.stream
,也就是ByteStream下面是可以用String格式获得响应的方法
在我看来,如果你想要流式响应而不是“收集”响应,你应该只使用request.send。
izj3ouym2#
只需使用
http.Response.fromStream()
yizd12fk3#
你可以在第一次回应后投,看:
bvn4nwqk4#
这就是我期望的json对象:
基于“hasErrors”属性,我想执行一些操作。
这是我如何从Http Post请求获得它:
nzk0hqpo5#
由于使用了
request.send
,MultipartRequest
返回了Streamed Response
。您需要从响应中提取字符串值,如下所示:在这种情况下,
responseString
将类似于dnph8jn46#
wmvff8tz7#
对我有效的是,
rggaifut8#
在下面的例子中,我对响应于我的模型类(UserModel)的流进行解码