fetch method

  1. @override
Future<HttpContent> fetch(
  1. Uri reference
)
override

Fetch (read fully) content body from a resource identified by reference.

Depending on the API the reference can be a relative path, an absolute URL, a key, or other identifier relevant on a context of an API.

Throws an ApiException if fetching fails. Implementations like HTTP fetcher may also throw other status codes than codes for success as exceptions.

Implementation

@override
Future<HttpContent> fetch(Uri reference) async {
  // resolve uri
  final uri = _resolver(reference);

  // do GET request and receive a "normal" HTTP response
  final http.Response response;
  try {
    response = await _adapter.get(uri, headers: _baseHeaders);
  } on Exception catch (e) {
    throw ClientException.failed(reference, e);
  }

  // form content instance from response (and original uri reference)
  return _validator(reference, response);
}