body method
Returns a Future containing the body as a String
.
Implementation
Future<String> body() async {
const requestBodyKey = 'dart_frog.request.body';
final bodyFromContext =
_request.context[requestBodyKey] as Completer<String>?;
if (bodyFromContext != null) return bodyFromContext.future;
final completer = Completer<String>();
try {
_request = _request.change(
context: {..._request.context, requestBodyKey: completer},
);
completer.complete(await _request.readAsString());
} catch (error, stackTrace) {
completer.completeError(error, stackTrace);
}
return completer.future;
}