send method

Future<Response> send(
  1. Request request, {
  2. RequestOptions? options,
})

Implementation

Future<Response> send(Request request, {RequestOptions? options}) async {
  final resolvedOptions = _resolveOptions(options);
  final signal = resolvedOptions.signal;
  if (signal?.aborted ?? false) {
    throw OxyCancelledException(reason: signal?.reason);
  }

  final resolvedRequest = _prepareRequest(request, resolvedOptions);
  final response = await _sendWithRetry(resolvedRequest, resolvedOptions);

  if (resolvedOptions.redirectPolicy == RedirectPolicy.error &&
      response.redirected) {
    throw OxyHttpException(
      response,
      message: 'Redirect blocked by RedirectPolicy.error',
    );
  }

  if (resolvedOptions.httpErrorPolicy == HttpErrorPolicy.throwException &&
      !response.ok) {
    throw OxyHttpException(response);
  }

  return response;
}