Можно ли частично прочитать ответ JSON из REST API с помощью Dart? - PullRequest
0 голосов
/ 07 мая 2019

Возможно ли передать поток ответа JSON API REST с помощью Dart?Ex.Размер ответа 5000 строк.Я хотел бы читать его построчно, не загружая сначала весь ответ из источника.

Я думаю, что подобное возможно с Java и JavaScript.

1 Ответ

0 голосов
/ 09 мая 2019

С пакетом http вы можете использовать метод send() для отправки запроса и получить Stream с ответом.

С Utf8Decoder и LineSplitter из 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);
  }
}
...