json - 是否可以使用 Dart 从 REST api 部分读取 JSON 响应
问题描述
是否可以使用 Dart 流式传输 REST API JSON 响应?前任。响应大小为 5000 行。我想逐行阅读,而无需先从源代码加载整个响应。
我认为 Java 和 JavaScript 也有类似的可能。
解决方案
使用http
包,您可以使用该send()
方法发送请求并获得Stream
响应。
使用Utf8Decoder
和LineSplitter
from dart:convert
,您可以在收到每一行时对其进行解码和读取。
import 'dart:convert';
import 'package:http/http.dart';
main() async {
var request = Request('GET', Uri.parse('http://localhost:8090'));
var response = await request.send();
var lineStream =
response.stream.transform(Utf8Decoder()).transform(LineSplitter());
// lineStream is a Stream<String> with each line from the response as an event.
// We can use the listen() method or await for to read it.
await for (String line in lineStream) {
print(line);
}
}
推荐阅读
- javascript - PURE Javascript 是同步的还是异步的?
- python - 如何在 Excel 的 Power Query 中运行 Python 脚本
- docker - 从另一个 GCP 项目将 Google Container Registry 容器拉入 Google Kubernetes Engine
- boolean - 布尔逻辑问题 - 两种不同的方法
- python - Williams R Ta-lib 获得带有回溯期的 TypeError
- c++ - 在 C++ 中执行终端命令,并在执行时使用 C++ 文件从终端传递的参数
- google-cloud-platform - 使用 Ansible 停止 Google 计算资源
- statistics - 差异显着性的适当检验
- c# - Transform.LookAt() 将对象的 Y 旋转更改为 180 或 -180
- algorithm - 研究人员如何设法找到如此大的素数?