using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
using System.Text;
namespace System.Net
{
/// Contains protocol headers associated with a request or response.
// Token: 0x02000268 RID: 616
[ComVisible(true)]
[Serializable]
public class WebHeaderCollection : global::System.Collections.Specialized.NameValueCollection, ISerializable
{
/// Initializes a new instance of the class.
// Token: 0x0600169B RID: 5787 RVA: 0x0004BC94 File Offset: 0x00049E94
public WebHeaderCollection()
{
}
/// Initializes a new instance of the class from the specified instances of the and classes.
/// A containing the information required to serialize the .
/// A containing the source of the serialized stream associated with the new .
///
/// contains invalid characters.
///
/// is a null reference or .
// Token: 0x0600169C RID: 5788 RVA: 0x0004BC9C File Offset: 0x00049E9C
protected WebHeaderCollection(SerializationInfo serializationInfo, StreamingContext streamingContext)
{
try
{
int num = serializationInfo.GetInt32("Count");
for (int i = 0; i < num; i++)
{
this.Add(serializationInfo.GetString(i.ToString()), serializationInfo.GetString((num + i).ToString()));
}
}
catch (SerializationException)
{
int num = serializationInfo.GetInt32("count");
for (int j = 0; j < num; j++)
{
this.Add(serializationInfo.GetString("k" + j), serializationInfo.GetString("v" + j));
}
}
}
// Token: 0x0600169D RID: 5789 RVA: 0x0004BD68 File Offset: 0x00049F68
internal WebHeaderCollection(bool internallyCreated)
{
this.internallyCreated = internallyCreated;
}
// Token: 0x0600169E RID: 5790 RVA: 0x0004BD78 File Offset: 0x00049F78
static WebHeaderCollection()
{
WebHeaderCollection.restricted.Add("accept", true);
WebHeaderCollection.restricted.Add("connection", true);
WebHeaderCollection.restricted.Add("content-length", true);
WebHeaderCollection.restricted.Add("content-type", true);
WebHeaderCollection.restricted.Add("date", true);
WebHeaderCollection.restricted.Add("expect", true);
WebHeaderCollection.restricted.Add("host", true);
WebHeaderCollection.restricted.Add("if-modified-since", true);
WebHeaderCollection.restricted.Add("range", true);
WebHeaderCollection.restricted.Add("referer", true);
WebHeaderCollection.restricted.Add("transfer-encoding", true);
WebHeaderCollection.restricted.Add("user-agent", true);
WebHeaderCollection.restricted.Add("proxy-connection", true);
WebHeaderCollection.restricted_response = new Dictionary(StringComparer.InvariantCultureIgnoreCase);
WebHeaderCollection.restricted_response.Add("Content-Length", true);
WebHeaderCollection.restricted_response.Add("Transfer-Encoding", true);
WebHeaderCollection.restricted_response.Add("WWW-Authenticate", true);
WebHeaderCollection.multiValue = new Hashtable(CaseInsensitiveHashCodeProvider.DefaultInvariant, CaseInsensitiveComparer.DefaultInvariant);
WebHeaderCollection.multiValue.Add("accept", true);
WebHeaderCollection.multiValue.Add("accept-charset", true);
WebHeaderCollection.multiValue.Add("accept-encoding", true);
WebHeaderCollection.multiValue.Add("accept-language", true);
WebHeaderCollection.multiValue.Add("accept-ranges", true);
WebHeaderCollection.multiValue.Add("allow", true);
WebHeaderCollection.multiValue.Add("authorization", true);
WebHeaderCollection.multiValue.Add("cache-control", true);
WebHeaderCollection.multiValue.Add("connection", true);
WebHeaderCollection.multiValue.Add("content-encoding", true);
WebHeaderCollection.multiValue.Add("content-language", true);
WebHeaderCollection.multiValue.Add("expect", true);
WebHeaderCollection.multiValue.Add("if-match", true);
WebHeaderCollection.multiValue.Add("if-none-match", true);
WebHeaderCollection.multiValue.Add("proxy-authenticate", true);
WebHeaderCollection.multiValue.Add("public", true);
WebHeaderCollection.multiValue.Add("range", true);
WebHeaderCollection.multiValue.Add("transfer-encoding", true);
WebHeaderCollection.multiValue.Add("upgrade", true);
WebHeaderCollection.multiValue.Add("vary", true);
WebHeaderCollection.multiValue.Add("via", true);
WebHeaderCollection.multiValue.Add("warning", true);
WebHeaderCollection.multiValue.Add("www-authenticate", true);
WebHeaderCollection.multiValue.Add("set-cookie", true);
WebHeaderCollection.multiValue.Add("set-cookie2", true);
}
/// Serializes this instance into the specified object.
/// The object into which this will be serialized.
/// The destination of the serialization.
// Token: 0x0600169F RID: 5791 RVA: 0x0004C124 File Offset: 0x0004A324
void ISerializable.GetObjectData(SerializationInfo serializationInfo, StreamingContext streamingContext)
{
this.GetObjectData(serializationInfo, streamingContext);
}
/// Inserts the specified header into the collection.
/// The header to add, with the name and value separated by a colon.
///
/// is null or .
///
/// does not contain a colon (:) character.The length of is greater than 65535.-or- The name part of is or contains invalid characters.-or- is a restricted header that should be set with a property.-or- The value part of contains invalid characters.
/// The length the string after the colon (:) is greater than 65535.
// Token: 0x060016A0 RID: 5792 RVA: 0x0004C130 File Offset: 0x0004A330
public void Add(string header)
{
if (header == null)
{
throw new ArgumentNullException("header");
}
int num = header.IndexOf(':');
if (num == -1)
{
throw new ArgumentException("no colon found", "header");
}
this.Add(header.Substring(0, num), header.Substring(num + 1));
}
/// Inserts a header with the specified name and value into the collection.
/// The header to add to the collection.
/// The content of the header.
///
/// is null, , or contains invalid characters.-or- is a restricted header that must be set with a property setting.-or- contains invalid characters.
/// The length of is greater than 65535.
// Token: 0x060016A1 RID: 5793 RVA: 0x0004C188 File Offset: 0x0004A388
public override void Add(string name, string value)
{
if (name == null)
{
throw new ArgumentNullException("name");
}
if (this.internallyCreated && WebHeaderCollection.IsRestricted(name))
{
throw new ArgumentException("This header must be modified with the appropiate property.");
}
this.AddWithoutValidate(name, value);
}
/// Inserts a header into the collection without checking whether the header is on the restricted header list.
/// The header to add to the collection.
/// The content of the header.
///
/// is null, , or contains invalid characters.-or- contains invalid characters.
// Token: 0x060016A2 RID: 5794 RVA: 0x0004C1D0 File Offset: 0x0004A3D0
protected void AddWithoutValidate(string headerName, string headerValue)
{
if (!WebHeaderCollection.IsHeaderName(headerName))
{
throw new ArgumentException("invalid header name: " + headerName, "headerName");
}
if (headerValue == null)
{
headerValue = string.Empty;
}
else
{
headerValue = headerValue.Trim();
}
if (!WebHeaderCollection.IsHeaderValue(headerValue))
{
throw new ArgumentException("invalid header value: " + headerValue, "headerValue");
}
base.Add(headerName, headerValue);
}
/// Gets an array of header values stored in a header.
/// An array of header strings.
/// The header to return.
// Token: 0x060016A3 RID: 5795 RVA: 0x0004C244 File Offset: 0x0004A444
public override string[] GetValues(string header)
{
if (header == null)
{
throw new ArgumentNullException("header");
}
string[] values = base.GetValues(header);
if (values == null || values.Length == 0)
{
return null;
}
return values;
}
/// Gets an array of header values stored in the position of the header collection.
/// An array of header strings.
/// The header index to return.
// Token: 0x060016A4 RID: 5796 RVA: 0x0004C27C File Offset: 0x0004A47C
public override string[] GetValues(int index)
{
string[] values = base.GetValues(index);
if (values == null || values.Length == 0)
{
return null;
}
return values;
}
/// Tests whether the specified HTTP header can be set for the request.
/// true if the header is restricted; otherwise false.
/// The header to test.
///
/// is null or .
///
/// contains invalid characters.
// Token: 0x060016A5 RID: 5797 RVA: 0x0004C2A4 File Offset: 0x0004A4A4
public static bool IsRestricted(string headerName)
{
if (headerName == null)
{
throw new ArgumentNullException("headerName");
}
if (headerName == string.Empty)
{
throw new ArgumentException("empty string", "headerName");
}
if (!WebHeaderCollection.IsHeaderName(headerName))
{
throw new ArgumentException("Invalid character in header");
}
return WebHeaderCollection.restricted.ContainsKey(headerName);
}
/// Tests whether the specified HTTP header can be set for the request or the response.
/// true if the header is restricted; otherwise, false.
/// The header to test.
/// Does the Framework test the response or the request?
///
/// is null or .
///
/// contains invalid characters.
// Token: 0x060016A6 RID: 5798 RVA: 0x0004C304 File Offset: 0x0004A504
public static bool IsRestricted(string headerName, bool response)
{
if (string.IsNullOrEmpty(headerName))
{
throw new ArgumentNullException("headerName");
}
if (!WebHeaderCollection.IsHeaderName(headerName))
{
throw new ArgumentException("Invalid character in header");
}
if (response)
{
return WebHeaderCollection.restricted_response.ContainsKey(headerName);
}
return WebHeaderCollection.restricted.ContainsKey(headerName);
}
/// Implements the interface and raises the deserialization event when the deserialization is complete.
/// The source of the deserialization event.
// Token: 0x060016A7 RID: 5799 RVA: 0x0004C35C File Offset: 0x0004A55C
public override void OnDeserialization(object sender)
{
}
/// Removes the specified header from the collection.
/// The name of the header to remove from the collection.
///
/// is null.
///
/// is a restricted header.-or- contains invalid characters.
// Token: 0x060016A8 RID: 5800 RVA: 0x0004C360 File Offset: 0x0004A560
public override void Remove(string name)
{
if (name == null)
{
throw new ArgumentNullException("name");
}
if (this.internallyCreated && WebHeaderCollection.IsRestricted(name))
{
throw new ArgumentException("restricted header");
}
base.Remove(name);
}
/// Sets the specified header to the specified value.
/// The header to set.
/// The content of the header to set.
///
/// is null or .
/// The length of is greater than 65535.
///
/// is a restricted header.-or- or contain invalid characters.
// Token: 0x060016A9 RID: 5801 RVA: 0x0004C39C File Offset: 0x0004A59C
public override void Set(string name, string value)
{
if (name == null)
{
throw new ArgumentNullException("name");
}
if (this.internallyCreated && WebHeaderCollection.IsRestricted(name))
{
throw new ArgumentException("restricted header");
}
if (!WebHeaderCollection.IsHeaderName(name))
{
throw new ArgumentException("invalid header name");
}
if (value == null)
{
value = string.Empty;
}
else
{
value = value.Trim();
}
if (!WebHeaderCollection.IsHeaderValue(value))
{
throw new ArgumentException("invalid header value");
}
base.Set(name, value);
}
/// Converts the to a byte array..
/// A array holding the header collection.
// Token: 0x060016AA RID: 5802 RVA: 0x0004C42C File Offset: 0x0004A62C
public byte[] ToByteArray()
{
return Encoding.UTF8.GetBytes(this.ToString());
}
// Token: 0x060016AB RID: 5803 RVA: 0x0004C440 File Offset: 0x0004A640
internal string ToStringMultiValue()
{
StringBuilder stringBuilder = new StringBuilder();
int count = base.Count;
for (int i = 0; i < count; i++)
{
string key = this.GetKey(i);
if (WebHeaderCollection.IsMultiValue(key))
{
foreach (string text in this.GetValues(i))
{
stringBuilder.Append(key).Append(": ").Append(text)
.Append("\r\n");
}
}
else
{
stringBuilder.Append(key).Append(": ").Append(this.Get(i))
.Append("\r\n");
}
}
return stringBuilder.Append("\r\n").ToString();
}
/// Obsolete.
/// The representation of the collection.
// Token: 0x060016AC RID: 5804 RVA: 0x0004C508 File Offset: 0x0004A708
public override string ToString()
{
StringBuilder stringBuilder = new StringBuilder();
int count = base.Count;
for (int i = 0; i < count; i++)
{
stringBuilder.Append(this.GetKey(i)).Append(": ").Append(this.Get(i))
.Append("\r\n");
}
return stringBuilder.Append("\r\n").ToString();
}
/// Populates a with the data needed to serialize the target object.
/// The to populate with data.
/// A that specifies the destination for this serialization.
// Token: 0x060016AD RID: 5805 RVA: 0x0004C574 File Offset: 0x0004A774
public override void GetObjectData(SerializationInfo serializationInfo, StreamingContext streamingContext)
{
int count = base.Count;
serializationInfo.AddValue("Count", count);
for (int i = 0; i < count; i++)
{
serializationInfo.AddValue(i.ToString(), this.GetKey(i));
serializationInfo.AddValue((count + i).ToString(), this.Get(i));
}
}
/// Gets all header names (keys) in the collection.
/// An array of type containing all header names in a Web request.
// Token: 0x17000742 RID: 1858
// (get) Token: 0x060016AE RID: 5806 RVA: 0x0004C5D4 File Offset: 0x0004A7D4
public override string[] AllKeys
{
get
{
return base.AllKeys;
}
}
/// Gets the number of headers in the collection.
/// An indicating the number of headers in a request.
// Token: 0x17000743 RID: 1859
// (get) Token: 0x060016AF RID: 5807 RVA: 0x0004C5DC File Offset: 0x0004A7DC
public override int Count
{
get
{
return base.Count;
}
}
/// Gets the collection of header names (keys) in the collection.
/// A containing all header names in a Web request.
// Token: 0x17000744 RID: 1860
// (get) Token: 0x060016B0 RID: 5808 RVA: 0x0004C5E4 File Offset: 0x0004A7E4
public override global::System.Collections.Specialized.NameObjectCollectionBase.KeysCollection Keys
{
get
{
return base.Keys;
}
}
/// Get the value of a particular header in the collection, specified by an index into the collection.
/// A containing the value of the specified header.
/// The zero-based index of the key to get from the collection.
///
/// is negative. -or- exceeds the size of the collection.
// Token: 0x060016B1 RID: 5809 RVA: 0x0004C5EC File Offset: 0x0004A7EC
public override string Get(int index)
{
return base.Get(index);
}
/// Get the value of a particular header in the collection, specified by the name of the header.
/// A holding the value of the specified header.
/// The name of the Web header.
// Token: 0x060016B2 RID: 5810 RVA: 0x0004C5F8 File Offset: 0x0004A7F8
public override string Get(string name)
{
return base.Get(name);
}
/// Get the header name at the specified position in the collection.
/// A holding the header name.
/// The zero-based index of the key to get from the collection.
///
/// is negative. -or- exceeds the size of the collection.
// Token: 0x060016B3 RID: 5811 RVA: 0x0004C604 File Offset: 0x0004A804
public override string GetKey(int index)
{
return base.GetKey(index);
}
/// Inserts the specified header with the specified value into the collection.
/// The header to add to the collection.
/// The content of the header.
/// The length of is greater than 65535.
/// This instance does not allow instances of .
// Token: 0x060016B4 RID: 5812 RVA: 0x0004C610 File Offset: 0x0004A810
public void Add(HttpRequestHeader header, string value)
{
this.Add(this.RequestHeaderToString(header), value);
}
/// Removes the specified header from the collection.
/// The instance to remove from the collection.
/// This instance does not allow instances of .
///
///
///
// Token: 0x060016B5 RID: 5813 RVA: 0x0004C620 File Offset: 0x0004A820
public void Remove(HttpRequestHeader header)
{
this.Remove(this.RequestHeaderToString(header));
}
/// Sets the specified header to the specified value.
/// The value to set.
/// The content of the header to set.
/// The length of is greater than 65535.
/// This instance does not allow instances of .
// Token: 0x060016B6 RID: 5814 RVA: 0x0004C630 File Offset: 0x0004A830
public void Set(HttpRequestHeader header, string value)
{
this.Set(this.RequestHeaderToString(header), value);
}
/// Inserts the specified header with the specified value into the collection.
/// The header to add to the collection.
/// The content of the header.
/// The length of is greater than 65535.
/// This instance does not allow instances of .
// Token: 0x060016B7 RID: 5815 RVA: 0x0004C640 File Offset: 0x0004A840
public void Add(HttpResponseHeader header, string value)
{
this.Add(this.ResponseHeaderToString(header), value);
}
/// Removes the specified header from the collection.
/// The instance to remove from the collection.
/// This instance does not allow instances of .
///
///
///
// Token: 0x060016B8 RID: 5816 RVA: 0x0004C650 File Offset: 0x0004A850
public void Remove(HttpResponseHeader header)
{
this.Remove(this.ResponseHeaderToString(header));
}
/// Sets the specified header to the specified value.
/// The value to set.
/// The content of the header to set.
/// The length of is greater than 65535.
/// This instance does not allow instances of .
// Token: 0x060016B9 RID: 5817 RVA: 0x0004C660 File Offset: 0x0004A860
public void Set(HttpResponseHeader header, string value)
{
this.Set(this.ResponseHeaderToString(header), value);
}
// Token: 0x060016BA RID: 5818 RVA: 0x0004C670 File Offset: 0x0004A870
private string RequestHeaderToString(HttpRequestHeader value)
{
switch (value)
{
case HttpRequestHeader.CacheControl:
return "cache-control";
case HttpRequestHeader.Connection:
return "connection";
case HttpRequestHeader.Date:
return "date";
case HttpRequestHeader.KeepAlive:
return "keep-alive";
case HttpRequestHeader.Pragma:
return "pragma";
case HttpRequestHeader.Trailer:
return "trailer";
case HttpRequestHeader.TransferEncoding:
return "transfer-encoding";
case HttpRequestHeader.Upgrade:
return "upgrade";
case HttpRequestHeader.Via:
return "via";
case HttpRequestHeader.Warning:
return "warning";
case HttpRequestHeader.Allow:
return "allow";
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.Expires:
return "expires";
case HttpRequestHeader.LastModified:
return "last-modified";
case HttpRequestHeader.Accept:
return "accept";
case HttpRequestHeader.AcceptCharset:
return "accept-charset";
case HttpRequestHeader.AcceptEncoding:
return "accept-encoding";
case HttpRequestHeader.AcceptLanguage:
return "accept-language";
case HttpRequestHeader.Authorization:
return "authorization";
case HttpRequestHeader.Cookie:
return "cookie";
case HttpRequestHeader.Expect:
return "expect";
case HttpRequestHeader.From:
return "from";
case HttpRequestHeader.Host:
return "host";
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.Referer:
return "referer";
case HttpRequestHeader.Range:
return "range";
case HttpRequestHeader.Te:
return "te";
case HttpRequestHeader.Translate:
return "translate";
case HttpRequestHeader.UserAgent:
return "user-agent";
default:
throw new InvalidOperationException();
}
}
/// Gets or sets the specified request header.
/// A instance containing the specified header value.
/// The request header value.
/// This instance does not allow instances of .
///
///
///
// Token: 0x17000745 RID: 1861
public string this[HttpRequestHeader hrh]
{
get
{
return this.Get(this.RequestHeaderToString(hrh));
}
set
{
this.Add(this.RequestHeaderToString(hrh), value);
}
}
// Token: 0x060016BD RID: 5821 RVA: 0x0004C84C File Offset: 0x0004AA4C
private string ResponseHeaderToString(HttpResponseHeader value)
{
switch (value)
{
case HttpResponseHeader.CacheControl:
return "cache-control";
case HttpResponseHeader.Connection:
return "connection";
case HttpResponseHeader.Date:
return "date";
case HttpResponseHeader.KeepAlive:
return "keep-alive";
case HttpResponseHeader.Pragma:
return "pragma";
case HttpResponseHeader.Trailer:
return "trailer";
case HttpResponseHeader.TransferEncoding:
return "transfer-encoding";
case HttpResponseHeader.Upgrade:
return "upgrade";
case HttpResponseHeader.Via:
return "via";
case HttpResponseHeader.Warning:
return "warning";
case HttpResponseHeader.Allow:
return "allow";
case HttpResponseHeader.ContentLength:
return "content-length";
case HttpResponseHeader.ContentType:
return "content-type";
case HttpResponseHeader.ContentEncoding:
return "content-encoding";
case HttpResponseHeader.ContentLanguage:
return "content-language";
case HttpResponseHeader.ContentLocation:
return "content-location";
case HttpResponseHeader.ContentMd5:
return "content-md5";
case HttpResponseHeader.ContentRange:
return "content-range";
case HttpResponseHeader.Expires:
return "expires";
case HttpResponseHeader.LastModified:
return "last-modified";
case HttpResponseHeader.AcceptRanges:
return "accept-ranges";
case HttpResponseHeader.Age:
return "age";
case HttpResponseHeader.ETag:
return "etag";
case HttpResponseHeader.Location:
return "location";
case HttpResponseHeader.ProxyAuthenticate:
return "proxy-authenticate";
case HttpResponseHeader.RetryAfter:
return "RetryAfter";
case HttpResponseHeader.Server:
return "server";
case HttpResponseHeader.SetCookie:
return "set-cookie";
case HttpResponseHeader.Vary:
return "vary";
case HttpResponseHeader.WwwAuthenticate:
return "www-authenticate";
default:
throw new InvalidOperationException();
}
}
/// Gets or sets the specified response header.
/// A instance containing the specified header.
/// The response header value.
/// The length of is greater than 65535.
/// This instance does not allow instances of .
///
///
///
// Token: 0x17000746 RID: 1862
public string this[HttpResponseHeader hrh]
{
get
{
return this.Get(this.ResponseHeaderToString(hrh));
}
set
{
this.Add(this.ResponseHeaderToString(hrh), value);
}
}
/// Removes all headers from the collection.
// Token: 0x060016C0 RID: 5824 RVA: 0x0004C9B8 File Offset: 0x0004ABB8
public override void Clear()
{
base.Clear();
}
/// Returns an enumerator that can iterate through the instance.
/// An for the .
// Token: 0x060016C1 RID: 5825 RVA: 0x0004C9C0 File Offset: 0x0004ABC0
public override IEnumerator GetEnumerator()
{
return base.GetEnumerator();
}
// Token: 0x060016C2 RID: 5826 RVA: 0x0004C9C8 File Offset: 0x0004ABC8
internal void SetInternal(string header)
{
int num = header.IndexOf(':');
if (num == -1)
{
throw new ArgumentException("no colon found", "header");
}
this.SetInternal(header.Substring(0, num), header.Substring(num + 1));
}
// Token: 0x060016C3 RID: 5827 RVA: 0x0004CA0C File Offset: 0x0004AC0C
internal void SetInternal(string name, string value)
{
if (value == null)
{
value = string.Empty;
}
else
{
value = value.Trim();
}
if (!WebHeaderCollection.IsHeaderValue(value))
{
throw new ArgumentException("invalid header value");
}
if (WebHeaderCollection.IsMultiValue(name))
{
base.Add(name, value);
}
else
{
base.Remove(name);
base.Set(name, value);
}
}
// Token: 0x060016C4 RID: 5828 RVA: 0x0004CA70 File Offset: 0x0004AC70
internal void RemoveAndAdd(string name, string value)
{
if (value == null)
{
value = string.Empty;
}
else
{
value = value.Trim();
}
base.Remove(name);
base.Set(name, value);
}
// Token: 0x060016C5 RID: 5829 RVA: 0x0004CA9C File Offset: 0x0004AC9C
internal void RemoveInternal(string name)
{
if (name == null)
{
throw new ArgumentNullException("name");
}
base.Remove(name);
}
// Token: 0x060016C6 RID: 5830 RVA: 0x0004CAB8 File Offset: 0x0004ACB8
internal static bool IsMultiValue(string headerName)
{
return headerName != null && !(headerName == string.Empty) && WebHeaderCollection.multiValue.ContainsKey(headerName);
}
// Token: 0x060016C7 RID: 5831 RVA: 0x0004CAE0 File Offset: 0x0004ACE0
internal static bool IsHeaderValue(string value)
{
int length = value.Length;
for (int i = 0; i < length; i++)
{
char c = value[i];
if (c == '\u007f')
{
return false;
}
if (c < ' ' && c != '\r' && c != '\n' && c != '\t')
{
return false;
}
if (c == '\n' && ++i < length)
{
c = value[i];
if (c != ' ' && c != '\t')
{
return false;
}
}
}
return true;
}
// Token: 0x060016C8 RID: 5832 RVA: 0x0004CB68 File Offset: 0x0004AD68
internal static bool IsHeaderName(string name)
{
if (name == null || name.Length == 0)
{
return false;
}
int length = name.Length;
for (int i = 0; i < length; i++)
{
char c = name[i];
if (c > '~' || !WebHeaderCollection.allowed_chars[(int)c])
{
return false;
}
}
return true;
}
// Token: 0x0400126E RID: 4718
private static readonly Hashtable restricted = new Hashtable(CaseInsensitiveHashCodeProvider.DefaultInvariant, CaseInsensitiveComparer.DefaultInvariant);
// Token: 0x0400126F RID: 4719
private static readonly Hashtable multiValue;
// Token: 0x04001270 RID: 4720
private static readonly Dictionary restricted_response;
// Token: 0x04001271 RID: 4721
private bool internallyCreated;
// Token: 0x04001272 RID: 4722
private static bool[] allowed_chars = new bool[]
{
false, false, false, false, false, false, false, false, false, false,
false, false, false, false, false, false, false, false, false, false,
false, false, false, false, false, false, false, false, false, false,
false, false, false, true, false, true, true, true, true, false,
false, false, true, true, false, true, true, false, true, true,
true, true, true, true, true, true, true, true, false, false,
false, false, false, false, false, true, true, true, true, true,
true, true, true, true, true, true, true, true, true, true,
true, true, true, true, true, true, true, true, true, true,
true, false, false, false, true, true, true, true, true, true,
true, true, true, true, true, true, true, true, true, true,
true, true, true, true, true, true, true, true, true, true,
true, true, true, false, true, false
};
}
}