saveFromResponse method
Save the cookies
for specified uri
.
Implementation
@override
Future<void> saveFromResponse(Uri uri, List<Cookie> cookies) async {
for (final cookie in cookies) {
String? domain = cookie.domain;
String path;
final int index;
if (domain != null) {
index = 0;
// Save cookies with "domain" attribute.
if (domain.startsWith('.')) {
domain = domain.substring(1);
}
path = cookie.path ?? '/';
} else {
// Save cookies without "domain" attribute.
index = 1;
domain = uri.host;
path = cookie.path ?? _curDir(uri.path);
}
final mapDomain =
_cookies[index][domain]?.cast<String, Map<String, dynamic>>() ??
<String, Map<String, dynamic>>{};
final map = mapDomain[path] ?? <String, dynamic>{};
map[cookie.name] = SerializableCookie(cookie: cookie);
if (_isExpired(map[cookie.name])) {
map.remove(cookie.name);
}
mapDomain[path] = map.cast<String, SerializableCookie>();
_cookies[index][domain] =
mapDomain.cast<String, Map<String, SerializableCookie>>();
}
}