如何使用Dart http包将HTTP响应转换为Buffer?
在Dart中将HTTP图片响应转换为类Buffer对象
在Dart的http包中,对应JavaScript里res.buffer()的功能可直接通过Response类的bodyBytes属性实现——它的类型是Uint8List,本质是Dart中的二进制字节数组,和JS的Buffer作用完全一致。
具体用法示例:
import 'package:http/http.dart' as http; void main() async { // 替换为你的图片API地址 final imageApiUrl = Uri.parse('https://example.com/api/image'); final response = await http.get(imageApiUrl); if (response.statusCode == 200) { // 获取二进制字节数组,对应JS中的Buffer Uint8List imageBuffer = response.bodyBytes; // 后续可基于此做操作:比如保存到本地、用于图片组件渲染等 // 示例:保存为本地文件(需导入dart:io) // import 'dart:io'; // await File('saved_image.jpg').writeAsBytes(imageBuffer); } else { throw Exception('请求图片失败,状态码: ${response.statusCode}'); } }
注意:不要使用response.body,它会把二进制数据转成字符串,导致图片损坏,必须用bodyBytes获取原始二进制字节。
内容的提问来源于stack exchange,提问作者Yakiyo
相关产品推荐
相关产品推荐

