/// <summary> /// 返回枚举的DisplayName /// </summary> /// <param name="header">请求头枚举</param> /// <returns></returns> private static string GetHeaderName(this HttpRequestHeader header) { return(httpRequestHeaderType .GetField(header.ToString())? .GetCustomAttribute <DisplayAttribute>()? .Name ?? header.ToString()); }
public string GetHeader(HttpRequestHeader header) { if (this.client.DefaultRequestHeaders.Contains(header.ToString())) { return(string.Join(";", this.client.DefaultRequestHeaders.GetValues(header.ToString()))); } return(null); }
public void Names_FromHttpRequestHeader() { WebHeaderCollection whc = new WebHeaderCollection(); // Enum.GetValues is not available on SL :( for (int i = (int)HttpRequestHeader.CacheControl; i <= (int)HttpRequestHeader.UserAgent; i++) { HttpRequestHeader hrh = (HttpRequestHeader)i; whc [hrh] = hrh.ToString(); } Assert.AreEqual(41, whc.Count, "Count"); string [] keys = whc.AllKeys; foreach (string key in keys) { // some names are equals to Enum.ToString if (whc [key] == key) { continue; } // while others are not (> 1 word) switch (key) { case "Cache-Control": case "Keep-Alive": case "Transfer-Encoding": case "Content-Length": case "Content-Type": case "Content-Encoding": case "Content-Language": case "Content-Location": case "Content-Range": case "Last-Modified": case "Accept-Charset": case "Accept-Encoding": case "Accept-Language": case "If-Match": case "If-Modified-Since": case "If-None-Match": case "If-Range": case "If-Unmodified-Since": case "Max-Forwards": case "Proxy-Authorization": case "User-Agent": Assert.AreEqual(key.Replace("-", String.Empty), whc [key], key); break; case "Content-MD5": Assert.AreEqual("ContentMd5", whc [key], key); break; case "TE": Assert.AreEqual("Te", whc [key], key); break; default: Assert.Fail(key); break; } } }
/** * @see https://stackoverflow.com/questions/25574333/how-to-use-system-net-httprequestheader-enum-with-an-asp-net-request */ public static string TranslateToHttpHeaderName(HttpRequestHeader enumToTranslate) { const string httpHeaderNameSeparator = "-"; string enumName = enumToTranslate.ToString(); var stringBuilder = new StringBuilder(); // skip first letter stringBuilder.Append(enumName[0]); for (int i = 1; i < enumName.Length; i++) { if (char.IsUpper(enumName[i])) { stringBuilder.Append(httpHeaderNameSeparator); } stringBuilder.Append(enumName[i]); } // Cover special case for 2 character enum name "Te" to "TE" header case. string headerName = stringBuilder.ToString(); if (headerName.Length == 2) { headerName = headerName.ToUpper(); } return(headerName); }
/// <summary> /// 获取请求头名称 /// </summary> /// <param name="header">请求头枚举</param> /// <returns></returns> public static string GetName(HttpRequestHeader header) { if (staticCache.TryGetValue(header, out var name)) { return(name); } return(header.ToString()); }
/// <summary> /// 转换为header名 /// </summary> /// <param name="header">请求头枚举</param> /// <returns></returns> public static string ToHeaderName(this HttpRequestHeader header) { if (cache.TryGetValue(header, out var name)) { return(name); } return(header.ToString()); }
/// <summary> /// Set the expectation that a header is present in a request. Calls made /// with an existing endpoint will replace the previous expectation. All /// expectations are checked, even after a match. /// </summary> /// <param name="endpointRegex">A regex to match multiple endpoints</param> /// <param name="header">The header key</param> /// <param name="value">The expected header value</param> public void ExpectHeaderPattern(string endpointRegex, HttpRequestHeader header, string value) { var absoluteUrlPattern = new Regex($"^{Regex.Escape(mBaseUrl)}{endpointRegex}$"); var expectedHeaders = GetOrMakeValue(absoluteUrlPattern, mExpectedHeaders, () => new HeaderList()); expectedHeaders.Add(Tuple.Create(header.ToString(), value)); }
public static void SetHttpHeader(this HttpWebRequest request, HttpRequestHeader header, string value) { switch (header) { case HttpRequestHeader.Accept: request.Accept = value; break; case HttpRequestHeader.Connection: request.Connection = value; break; case HttpRequestHeader.ContentLength: request.ContentLength = long.Parse(value); break; case HttpRequestHeader.ContentType: request.ContentType = value; break; case HttpRequestHeader.Date: request.Date = DateTime.Parse(value); break; case HttpRequestHeader.Expect: request.Expect = value; break; case HttpRequestHeader.Host: request.Host = value; break; case HttpRequestHeader.IfModifiedSince: request.IfModifiedSince = DateTime.Parse(value); break; case HttpRequestHeader.KeepAlive: request.KeepAlive = bool.Parse(value); break; case HttpRequestHeader.Referer: request.Referer = value; break; case HttpRequestHeader.TransferEncoding: request.TransferEncoding = value; break; case HttpRequestHeader.UserAgent: request.UserAgent = value; break; default: request.Headers.Add(header.ToString(), value); break; } }
public static string GetHeaderString(HttpRequestHeader header) { // Use a dictionary here if you want. The API is the important bit switch (header) { case HttpRequestHeader.Accept: return("Accept"); case HttpRequestHeader.AcceptCharset: return("Accept-Charset"); default: throw new KeyNotFoundException(header.ToString()); } }
private static string ToString(HttpRequestHeader value) { switch (value) { case HttpRequestHeader.CacheControl: return "Cache-Control"; case HttpRequestHeader.KeepAlive: return "Keep-Alive"; case HttpRequestHeader.TransferEncoding: return "Transfer-Encoding"; case HttpRequestHeader.ContentLength: return "Content-Length"; case HttpRequestHeader.ContentType: return "Content-Type"; case HttpRequestHeader.ContentEncoding: return "Content-Encoding"; case HttpRequestHeader.ContentLanguage: return "Content-Language"; case HttpRequestHeader.ContentLocation: return "Content-Location"; case HttpRequestHeader.ContentMd5: return "Content-MD5"; case HttpRequestHeader.ContentRange: return "Content-Range"; case HttpRequestHeader.LastModified: return "Last-Modified"; case HttpRequestHeader.AcceptCharset: return "Accept-Charset"; case HttpRequestHeader.AcceptEncoding: return "Accept-Encoding"; case HttpRequestHeader.AcceptLanguage: return "Accept-Language"; case HttpRequestHeader.IfMatch: return "If-Match"; case HttpRequestHeader.IfModifiedSince: return "If-Modified-Since"; case HttpRequestHeader.IfNoneMatch: return "If-None-Match"; case HttpRequestHeader.IfRange: return "If-Range"; case HttpRequestHeader.IfUnmodifiedSince: return "If-Unmodified-Since"; case HttpRequestHeader.MaxForwards: return "Max-Forwards"; case HttpRequestHeader.ProxyAuthorization: return "Proxy-Authorization"; case HttpRequestHeader.UserAgent: return "User-Agent"; default: return value.ToString(); } }
void Headers_HttpRequestHeader(string method) { // Enum.GetValues is not available on SL :( for (int i = (int)HttpRequestHeader.CacheControl; i <= (int)HttpRequestHeader.UserAgent; i++) { WebRequest wr = GetWebRequest(new Uri("http://localhost")); wr.Method = method; HttpRequestHeader header = (HttpRequestHeader)i; string s = i.ToString(); if (IsValidHeader(header)) { wr.Headers [header] = s; Assert.AreEqual(s, wr.Headers [header], header.ToString()); } else { Assert.Throws <ArgumentException> (delegate { wr.Headers [header] = s; }, header.ToString()); } } }
protected string requestHeaderFieldNameToString(HttpRequestHeader val) { switch (val) { case HttpRequestHeader.ContentLength: return("Content-Length"); case HttpRequestHeader.ContentType: return("Content-Type"); case HttpRequestHeader.TransferEncoding: return("Transfer-Encoding"); } return(val.ToString()); }
public string GetHeaderFieldValue(HttpRequestHeader key) { var query = from field in this.Header where field.Key.Replace("-", "").ToLower() == key.ToString().ToLower() select field; if (!query.Any()) { return(null); } else { return(query.First().Value); } }
public RequestBuilder AddHeader(HttpRequestHeader header, string value) { this.request.AddHeader(header.ToString(), value); return(this); }
public And ContainsHeaderValue(HttpRequestHeader header, string value) { return(ContainsHeaderValue(header.ToString(), value)); }
public HeaderCollection Add(HttpRequestHeader header, object value) => Add(header.ToString(), value);
public bool SetHeader(HttpRequestHeader Name, string val) { return(SetHeader(Name.ToString(), val)); }
internal static string Convert(HttpRequestHeader header) { return(convert(header.ToString())); }
internal static string Convert(HttpRequestHeader header) { return(WebHeaderCollection.convert(header.ToString())); }
public void Names_String() { WebHeaderCollection whc = new WebHeaderCollection(); // Enum.GetValues is not available on SL :( for (int i = (int)HttpRequestHeader.CacheControl; i <= (int)HttpRequestHeader.UserAgent; i++) { HttpRequestHeader hrh = (HttpRequestHeader)i; // string is kept as supplied if ((i % 2) == 1) { whc [HttpRequestHeaderToString(hrh).ToLower()] = hrh.ToString().ToLower(); } else { whc [HttpRequestHeaderToString(hrh).ToUpper()] = hrh.ToString().ToUpper(); } } Assert.AreEqual(41, whc.Count, "Count"); foreach (string key in whc) { // some names are equals to Enum.ToString if (whc [key] == key) { continue; } // while others are not (> 1 word) switch (key) { case "CACHE-CONTROL": case "keep-alive": case "TRANSFER-ENCODING": case "content-length": case "CONTENT-TYPE": case "content-encoding": case "CONTENT-LANGUAGE": case "content-location": case "content-range": case "last-modified": case "accept-charset": case "ACCEPT-ENCODING": case "accept-language": case "if-match": case "IF-MODIFIED-SINCE": case "if-none-match": case "IF-RANGE": case "if-unmodified-since": case "MAX-FORWARDS": case "proxy-authorization": case "USER-AGENT": Assert.AreEqual(key.Replace("-", String.Empty), whc [key], key); break; case "CONTENT-MD5": Assert.AreEqual("CONTENTMD5", whc [key], key); break; case "TE": Assert.AreEqual("Te", whc [key], key); break; default: Assert.Fail(key); break; } } }
public String this[HttpRequestHeader header] { get { return(this[header.ToString()]); } }
public void printSpecificHeader(HttpRequestHeader header) { Console.WriteLine($"{header}: {this.headers.Get(header.ToString())}"); }
private static string ToString(HttpRequestHeader value) { switch (value) { case HttpRequestHeader.CacheControl: return("Cache-Control"); case HttpRequestHeader.KeepAlive: return("Keep-Alive"); case HttpRequestHeader.TransferEncoding: return("Transfer-Encoding"); case HttpRequestHeader.ContentLength: return("Content-Length"); case HttpRequestHeader.ContentType: return("Content-Type"); case HttpRequestHeader.ContentEncoding: return("Content-Encoding"); case HttpRequestHeader.ContentLanguage: return("Content-Language"); case HttpRequestHeader.ContentLocation: return("Content-Location"); case HttpRequestHeader.ContentMd5: return("Content-MD5"); case HttpRequestHeader.ContentRange: return("Content-Range"); case HttpRequestHeader.LastModified: return("Last-Modified"); case HttpRequestHeader.AcceptCharset: return("Accept-Charset"); case HttpRequestHeader.AcceptEncoding: return("Accept-Encoding"); case HttpRequestHeader.AcceptLanguage: return("Accept-Language"); case HttpRequestHeader.IfMatch: return("If-Match"); case HttpRequestHeader.IfModifiedSince: return("If-Modified-Since"); case HttpRequestHeader.IfNoneMatch: return("If-None-Match"); case HttpRequestHeader.IfRange: return("If-Range"); case HttpRequestHeader.IfUnmodifiedSince: return("If-Unmodified-Since"); case HttpRequestHeader.MaxForwards: return("Max-Forwards"); case HttpRequestHeader.ProxyAuthorization: return("Proxy-Authorization"); case HttpRequestHeader.UserAgent: return("User-Agent"); default: return(value.ToString()); } }
public SendOnlyRequestBuilder Header(HttpRequestHeader header, string value) { RequestData.Headers.Add(header.ToString(), value); return(this); }
public void print(HttpRequestHeader req) { Console.WriteLine($"{req}: { this.listenerRequest.Headers[req.ToString()]}"); }
static internal string Convert(HttpRequestHeader header) { string headerAsString = header.ToString(); return(Convert(headerAsString)); }
/// <summary> /// Determines whether the specified header collection contains header. /// </summary> /// <param name="headers">The header collection.</param> /// <param name="headerKey">Header name to look for.</param> /// <param name="headerKeyFound">The matching header (might be slightly different from the supplied name).</param> /// <returns></returns> public static bool ContainsHeader(this WebHeaderCollection headers, HttpRequestHeader headerKey, out string headerKeyFound) { return(headers.ContainsHeaderKey(headerKey.ToString(), out headerKeyFound)); }
/// <summary> /// 设置标头 /// </summary> /// <param name="Name"></param> /// <param name="val"></param> /// <returns></returns> public WebConnection SetHeader(HttpRequestHeader Name, string val) { return(SetHeader(Name.ToString(), val)); }
/// <summary> /// 将参数值设置到Header /// </summary> /// <param name="name">header名称</param> public HeaderAttribute(HttpRequestHeader name) : this(name.ToString(), null) { }
public String this[HttpRequestHeader header] { get { return this[header.ToString()]; } }
/// <summary> /// 将指定值设置到Header /// </summary> /// <param name="name">header名称</param> /// <param name="value">header值</param> public HeaderAttribute(HttpRequestHeader name, string value) : this(name.ToString(), value) { }
internal static string Convert(HttpRequestHeader header) { return Convert (header.ToString ()); }
public And ContainsHeader(HttpRequestHeader headers) { return(ContainsHeader(headers.ToString())); }