I'm doing an api request uploading an image with
var request = new http.MultipartRequest("POST", uri); var response = await request.send()
in dart using flutter. I can then check the response code with for instance
if (response.statusCode == 200) { print('ok'); }
with other calls I can also get the response body with
var result = response.body;
however when using request.send() I can't seem to find out how to get the response body result.
Any help or input is very much appreciated, thanks!
An HTTP response where the response body is received asynchronously after the headers have been received.
I checked the docs for request.send I returns Future<StreamedResponse>
instead of Future<Response>
Digging more for StreamedResponse I found that it response.stream
which is a ByteStream
Here is what you can do to get response in String
final response = await request.send(); final respStr = await response.stream.bytesToString();
In my opinoin you should only use request.send if you want streamed response instead of "collected" response. More about streams in dart here
Just use http.Response.fromStream()
import 'package:http/http.dart' as http; var streamedResponse = await request.send() var response = await http.Response.fromStream(streamedResponse);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With