internal string?GetHeaderValueOrNull(KnownHeader headerName) { if (headers.TryGetValue(headerName.String, out var header)) { return(header.Value); } return(null); }
internal void SetOrAddHeaderValue(KnownHeader headerName, KnownHeader value) { if (headers.TryGetValue(headerName.String, out var header)) { header.SetValue(value); } else { headers.Add(headerName.String, new HttpHeader(headerName, value)); } }
/// <summary> /// removes all headers with given name /// </summary> /// <param name="headerName"></param> /// <returns> /// True if header was removed /// False if no header exists with given name /// </returns> public bool RemoveHeader(KnownHeader headerName) { bool result = headers.Remove(headerName.String); // do not convert to '||' expression to avoid lazy evaluation if (nonUniqueHeaders.Remove(headerName.String)) { result = true; } return(result); }
internal HttpHeader?GetFirstHeader(KnownHeader name) { if (headers.TryGetValue(name.String, out var header)) { return(header); } if (nonUniqueHeaders.TryGetValue(name.String, out var h)) { return(h.FirstOrDefault()); } return(null); }
internal void SetOrAddHeaderValue(KnownHeader headerName, string?value) { if (value == null) { RemoveHeader(headerName); return; } if (headers.TryGetValue(headerName.String, out var header)) { header.SetValue(value); } else { headers.Add(headerName.String, new HttpHeader(headerName, value)); } }
internal void AddHeader(KnownHeader name, KnownHeader value) { AddHeader(new HttpHeader(name, value)); }