Можете ли вы попробовать этот класс, так как я еще не тестировал его? Дайте мне знать о любой вещи, напечатанной на вашей консоли.
class MF extends http.MultipartRequest{
MF(String method, Uri url) : super(method, url);
@override
Future<http.StreamedResponse> send() async {
var client = new Client();
int byteCount = 0;
Stream<List<int>> onDone<T>(Stream<List<int>> stream, void onDone()) =>
stream.transform(new StreamTransformer.fromHandlers(
handleDone: (sink) {
sink.close();
onDone();
},
handleData: (data, sink) {
byteCount += data.length;
print(byteCount);
sink.add(data);
},
),
);
try {
var response = await client.send(this);
var stream = onDone(response.stream, client.close);
return new StreamedResponse(new ByteStream(stream), response.statusCode,
contentLength: response.contentLength,
request: response.request,
headers: response.headers,
isRedirect: response.isRedirect,
persistentConnection: response.persistentConnection,
reasonPhrase: response.reasonPhrase);
} catch (_) {
client.close();
rethrow;
}
}
}
ИСПОЛЬЗОВАНИЕ:
вместо var request = http.MultipartRequest("POST", uri);
использование:
var request = MF("POST", uri);