I want to send fairly large data to the server with what percentage of progress, but it fails. But when I send data without progress it works. Is it possible to get progress when sending data to server? Here's the code I use. Please help thank you
void postDataWithProgress() async {
HttpClient httpClient = new HttpClient();
var url = "https://xxxxxxx/api/adddata";
HttpClientRequest request =
await httpClient.postUrl(Uri.parse(url)).timeout(Duration(seconds: 10));
var datavalue = {
"listvideoname": ["a", "b", "c"],
"listvideobase64": ["adahd", "ayuiary", "oukjfjka"]
};
var body = json.encode(datavalue);
int byteCount = 0;
var totalByteLength = body.length;
Stream<String> mystream = new Stream.value(body);
Stream<List<int>> streamUpload =
mystream.transform(new StreamTransformer.fromHandlers(
handleData: (data, sink) {
byteCount += data.length;
},
handleDone: (sink) {
sink.close();
},
handleError: (error, stackTrace, sink) {
throw error;
},
));
request.contentLength = totalByteLength;
request.addStream(streamUpload);
request.headers
.set("Content-Type", "application/json", preserveHeaderCase: true);
request.headers
.set("Authorization", "Bearer $token", preserveHeaderCase: true);
request.add(utf8.encode(body));
HttpClientResponse response = await request.close();
if (response.statusCode == 200) {
print("add data success");
}else{
print("add data error");
}
}