Flutter 如何下载二进制文件
我想下载一个二进制文件,它是PDF,并保存到我的设备。该文件来自API响应。我的Flutter 如何下载二进制文件,flutter,Flutter,我想下载一个二进制文件,它是PDF,并保存到我的设备。该文件来自API响应。我的响应.body如下: 这是我的密码: void downloadFile() async { String url = Uri.encodeFull('https://API_URL'); http.Response response = await http.post(url, headers: {"Accept": "application/json", HttpHeaders.authorizatio
响应.body
如下:
这是我的密码:
void downloadFile() async {
String url = Uri.encodeFull('https://API_URL');
http.Response response = await http.post(url, headers: {"Accept": "application/json", HttpHeaders.authorizationHeader: 'Bearer '},});
print(response.body);
}
如何使用
response.body
下载PDF文件?使用response.bodyBytes
:
void downloadFile(File f) async {
var url = Uri.encodeFull('https://API_URL');
var response = await http.post(url, headers: {HttpHeaders.authorizationHeader: 'Bearer '},});
await f.writeAsBytes(response.bodyBytes);
}
我删除了
Accept
标题,因为它毫无意义。您向服务器暗示您需要JSON,而实际上您需要PDF。如果您有响应,您已经下载了数据。我想您只需要将其写入文件而不是打印?谢谢您的回复,我可以知道如何将其写入文件吗?响应。bodyBytes
是二进制数据<代码>正文是已经通过字符记录器传递的相同数据。默认值为拉丁文1,除非内容类型标题包含编码参数。是否这样写可以下载pdf并保存到我的手机存储器中?是-使用path\u provider创建文件路径
我想将文件存储到/storage/emulated/0/download中。如何储存?我使用getExternalStorageDirectory,但它存储在/storage/emulated/0/Android/data/com.example.myApps/files中。我将保存路径代码添加到我的代码中,但现在对于未处理的异常有错误:FileSystemException:无法打开文件,path='Instance of'Future'/file.pdf'(操作系统错误:没有这样的文件或目录,errno=2)似乎解决了如何将二进制数据保存到文件中的问题@如果有新问题,请提出新问题,而不是更改原始问题中的代码,这会使此答案无效。