onResponse method
- Response response,
- ResponseInterceptorHandler handler
override
Called when the response is about to be resolved.
Implementation
@override
void onResponse(Response response, ResponseInterceptorHandler handler) {
final requestLog = _requestLog(response.requestOptions);
final statusCode = response.statusCode;
final contentType = response.headers
.value(HttpHeaders.contentTypeHeader)
?.split(';')
.first;
final contentLengthHeader = response.headers.value(
HttpHeaders.contentLengthHeader,
);
final responseBodyLength =
int.tryParse(contentLengthHeader ?? '') ??
switch (response.data) {
String s => s.length,
List l => l.length,
Map m => m.length,
_ => null,
};
final cookies = response.headers[HttpHeaders.setCookieHeader]?.length;
final responseLog = [
statusCode,
if (contentType case final t) t,
if (responseBodyLength case final l?) '${_compactFormat(l)}B',
if (cookies case final c? when c > 0) "$c cookie${c != 1 ? 's' : ''}",
].join(' ');
final message = '$requestLog => $responseLog';
log(message, name: 'HTTP');
firebaseService.log(message);
handler.next(response);
}