/// <summary> /// Returns all headers /// </summary> /// <returns></returns> public List <HttpHeader> GetAllHeaders() { var result = new List <HttpHeader>(); result.AddRange(RequestHeaders.Select(x => x.Value)); result.AddRange(NonUniqueRequestHeaders.SelectMany(x => x.Value)); return(result); }
/// <summary> /// True if header exists /// </summary> /// <param name="name"></param> /// <returns></returns> public bool HeaderExists(string name) { if (RequestHeaders.ContainsKey(name) || NonUniqueRequestHeaders.ContainsKey(name)) { return(true); } return(false); }
/// <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(string headerName) { if (RequestHeaders.ContainsKey(headerName)) { RequestHeaders.Remove(headerName); return(true); } else if (NonUniqueRequestHeaders.ContainsKey(headerName)) { NonUniqueRequestHeaders.Remove(headerName); return(true); } return(false); }
/// <summary> /// Returns all headers with given name if exists /// Returns null if does'nt exist /// </summary> /// <param name="name"></param> /// <returns></returns> public List <HttpHeader> GetHeaders(string name) { if (RequestHeaders.ContainsKey(name)) { return(new List <HttpHeader>() { RequestHeaders[name] }); } else if (NonUniqueRequestHeaders.ContainsKey(name)) { return(new List <HttpHeader>(NonUniqueRequestHeaders[name])); } return(null); }
/// <summary> /// Removes given header object if it exist /// </summary> /// <param name="header">Returns true if header exists and was removed </param> public bool RemoveHeader(HttpHeader header) { if (RequestHeaders.ContainsKey(header.Name)) { if (RequestHeaders[header.Name].Equals(header)) { RequestHeaders.Remove(header.Name); return(true); } } else if (NonUniqueRequestHeaders.ContainsKey(header.Name)) { if (NonUniqueRequestHeaders[header.Name] .RemoveAll(x => x.Equals(header)) > 0) { return(true); } } return(false); }
/// <summary> /// Adds the given header object to Request /// </summary> /// <param name="newHeader"></param> public void AddHeader(HttpHeader newHeader) { if (NonUniqueRequestHeaders.ContainsKey(newHeader.Name)) { NonUniqueRequestHeaders[newHeader.Name].Add(newHeader); return; } if (RequestHeaders.ContainsKey(newHeader.Name)) { var existing = RequestHeaders[newHeader.Name]; RequestHeaders.Remove(newHeader.Name); NonUniqueRequestHeaders.Add(newHeader.Name, new List <HttpHeader>() { existing, newHeader }); } else { RequestHeaders.Add(newHeader.Name, newHeader); } }