set method

  1. @override
void set(
  1. String name,
  2. Object value, {
  3. bool preserveHeaderCase = false,
})
override

Sets the header name to value.

Removes all existing values for the header named name and then adds value to it.

Implementation

@override
void set(String name, Object value, {bool preserveHeaderCase = false}) {
  _checkMutable();
  String lowercaseName = _validateField(name);
  _headers.remove(lowercaseName);
  _originalHeaderNames?.remove(lowercaseName);
  if (lowercaseName == HttpHeaders.contentLengthHeader) {
    _contentLength = -1;
  }
  if (lowercaseName == HttpHeaders.transferEncodingHeader) {
    _chunkedTransferEncoding = false;
  }
  if (preserveHeaderCase && name != lowercaseName) {
    (_originalHeaderNames ??= {})[lowercaseName] = name;
  }
  _addAll(lowercaseName, value);
}