focode
focode

Reputation: 716

Retrieving String from HttpClientResponse class in Dart

I want to retrieve response as a string in dart and I am referring to below code:

  Future<String> readResponse(HttpClientResponse response) {
    var completer = new Completer();
    var contents = new StringBuffer();
    response.transform(utf8.decoder).listen((data) {
      contents.write(data);
    }, onDone: () => completer.complete(contents.toString()));
    return completer.future;
  }

I got the reference fro this link : Retrieving the response body from an HttpClientResponse

but this is giving me an error:

A value of type 'Future can't be returned from method 'readResponse' because it has a return type of 'Future'.

I am learning dart and I am not able to figure out the solution for it, I am using Dart 2.7

Upvotes: 1

Views: 117

Answers (1)

mezoni
mezoni

Reputation: 11218

You must specify the type for Completer.

import 'dart:async';

Future<String> readResponse(HttpClientResponse response) {
  var completer = Completer<String>();
  var contents = StringBuffer();
  response.transform(utf8.decoder).listen((data) {
    contents.write(data);
  }, onDone: () => completer.complete(contents.toString()));
  return completer.future;
}

Upvotes: 1

Related Questions