Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何下载二进制文件_Flutter - Fatal编程技术网

Flutter 如何下载二进制文件

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

我想下载一个二进制文件,它是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.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)似乎解决了如何将二进制数据保存到文件中的问题@如果有新问题,请提出新问题,而不是更改原始问题中的代码,这会使此答案无效。