You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 05:45:48