Reputation: 716
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
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