예제 #1
0
        internal string?GetHeaderValueOrNull(KnownHeader headerName)
        {
            if (headers.TryGetValue(headerName.String, out var header))
            {
                return(header.Value);
            }

            return(null);
        }
예제 #2
0
 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));
     }
 }
예제 #3
0
        /// <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);
        }
예제 #4
0
        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);
        }
예제 #5
0
        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));
            }
        }
예제 #6
0
 internal void AddHeader(KnownHeader name, KnownHeader value)
 {
     AddHeader(new HttpHeader(name, value));
 }