1

新しいdart:ioライブラリのリリースに伴い、HttpRequestからデータを読み取るには、次のことを行う必要があります。

ボディを聞いてデータを処理し、完了を通知します。

これを実現するために、私は次のようなものを使用して、リクエストからすべてのデータを取得しています(dart:ioテストから取得)。

List<int> body = new List<int>();
request.listen(body.addAll, onDone: () {
  var str = new String.fromCharCodes(body);
  // Now do something with the string of data
});

変換StringDecodersを使用して、構築された結果をすでに提供する方法はありますか?私が考えることができる唯一の方法は、StringBufferを作成し、writeAllを使用して、すべてのデータが一度に到着しない場合にすべてのデータが渡されるようにし、バッファーで文字列を使用する前にonDoneを呼び出す必要があります。

したがって、最終的に問題になるのは、結果をバッファリング/ビルドする必要なしにHttpRequest(または実際には任意のStream)を使用して、コンテンツ全体を受け取るコールバックまたはハンドラーを渡すことができる方法があるかどうかです。

4

1 に答える 1

0

私はこれを試していませんが、StringDecoder、toList()、join()を使用して全身を取得できるはずです。

request.transform(new StringDecoder()).toList().then((data) {
  var body = data.join('');
  print(body);
}
于 2013-02-26T20:38:15.617 に答える