upload method
Implementation
@override
Future<int> upload(UploadRequestData request, {DRCancelToken? cancel}) {
return _guard(request.timeoutMs, cancel, (track) async {
final req = await _client.openUrl(request.method, request.url);
track(req);
req.followRedirects = false;
request.headers.forEach(req.headers.set);
req.contentLength = request.length;
var sent = 0;
await req.addStream(request.body().map((chunk) {
sent += chunk.length;
request.onProgress?.call(sent);
return chunk;
}));
final response = await req.close();
await response.drain<void>();
return response.statusCode;
});
}