body method

Future<String> body()

Returns a Future containing the body as a String.

Implementation

Future<String> body() async {
  const responseBodyKey = 'dart_frog.response.body';
  final bodyFromContext =
      _response.context[responseBodyKey] as Completer<String>?;
  if (bodyFromContext != null) return bodyFromContext.future;

  final completer = Completer<String>();
  try {
    _response = _response.change(
      context: {..._response.context, responseBodyKey: completer},
    );
    completer.complete(await _response.readAsString());
  } catch (error, stackTrace) {
    completer.completeError(error, stackTrace);
  }

  return completer.future;
}