【发布时间】:2018-09-12 10:36:19
【问题描述】:
我需要能够从私人服务器下载和显示图像。我发送的请求需要包含一个带有内容类型的标头和一个带有 sessionToken 和 userId 的正文。 服务器以内容类型 application/octet-stream 的二进制流响应。
这是我现在的代码:
Future<Null> _downloadFile(String url, String userId, sessionToken) async {
Map map = {'token': sessionToken, 'UserId': userId};
try {
var request = await httpClient.getUrl(Uri.parse(url));
request.headers.set('content-type', 'application/json');
request.add(utf8.encode(json.encode(map)));
var response = await request.close();
var bytes = await consolidateHttpClientResponseBytes(response);
await _image.writeAsBytes(bytes);
userImage(_image);
}
catch (value){
print(value);
}
}
当我尝试阅读响应时,我收到此错误: HttpException:内容大小超过指定的 contentLength。 72 字节写入,而预期为 0。
我已经尝试无休止地在谷歌上搜索如何使用流从服务器下载文件,但我找不到任何东西。我需要的是类似于bitmap class in .NET 的东西,它可以接收流并将其转换为图像。
有人可以帮我吗?这将不胜感激。
【问题讨论】: