Skip to content

Commit b2d832b

Browse files
committed
Added send progress to IOClient
1 parent c16bf02 commit b2d832b

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

pkgs/http/lib/src/io_client.dart

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,24 @@ class IOClient extends BaseClient {
127127
ioRequest.headers.set(name, value);
128128
});
129129

130-
var response = await stream.pipe(ioRequest) as HttpClientResponse;
130+
HttpClientResponse response;
131+
if (onSendProgress != null) {
132+
var loaded = 0;
133+
onSendProgress(loaded, request.contentLength);
134+
135+
await ioRequest.addStream(
136+
stream.map(
137+
(chunk) {
138+
loaded += chunk.length;
139+
onSendProgress(loaded, request.contentLength);
140+
return chunk;
141+
},
142+
),
143+
);
144+
response = await ioRequest.close();
145+
} else {
146+
response = await stream.pipe(ioRequest) as HttpClientResponse;
147+
}
131148

132149
var headers = <String, String>{};
133150
response.headers.forEach((key, values) {

0 commit comments

Comments
 (0)