fetch function
- required String url,
- required String saveToPath,
- FetchMethod method = FetchMethod.get,
- Map<
String, String> ? headers, - OnFetchProgress fetchProgress = _devNull,
- FetchData? data,
Fetches the given resource at the passed url.
print(''); // will be overwritten with progress messages.
fetch(
url:
'https://some/resource/file.zip',
saveToPath: pathToPiImage,
fetchProgress: FetchProgress.showBytes
});
The url must be a http or https based resource.
The saveToPath may be an absolute (recommended) or relative path where to
save the downloaded resource.
The file at saveToPath must NOT exist. If it does a FetchException
will be thrown.
Any headers that you pass are sent as HTTP headers along with their value.
When using the FetchMethod.post you provide a data argument which
supplies the data to be sent.
If you set data for any other method then a
You may optionally passing in a fetchProgress method which will be
called each
time a chunk is downloaded with details on the download progress.
We guarentee that you will recieve a final event with the
FetchProgress.progress
containing a value of 1.0 and a status of 'complete'.
In the future we MAY allow you to cancel the download part way
through by returning false
to the fetchProgress call. In the meantime ensure that you
always return true from
the 'onProgress' callback.
Throws a FetchException if something goes wrong.
In the event of a HTTP error we will still try to download
the body and save it to saveToPath as often the body
contains additional information about the error.
Implementation
void fetch({
required String url,
required String saveToPath,
FetchMethod method = FetchMethod.get,
Map<String, String>? headers,
OnFetchProgress fetchProgress = _devNull,
FetchData? data,
}) {
headers ??= <String, String>{};
_Fetch().fetch(
url: url,
saveToPath: saveToPath,
method: method,
headers: headers,
progress: fetchProgress,
data: data);
}