﻿<?xml version="1.0" encoding="utf-8"?><Type Name="HttpWebRequest" FullName="System.Net.HttpWebRequest" FullNameSP="System_Net_HttpWebRequest" Maintainer="ecma"><TypeSignature Language="ILASM" Value=".class public serializable HttpWebRequest extends System.Net.WebRequest" /><TypeSignature Language="C#" Value="public class HttpWebRequest : System.Net.WebRequest, System.Runtime.Serialization.ISerializable" /><TypeSignature Language="ILAsm" Value=".class public auto ansi serializable HttpWebRequest extends System.Net.WebRequest implements class System.Runtime.Serialization.ISerializable" /><MemberOfLibrary>Networking</MemberOfLibrary><AssemblyInfo><AssemblyName>System</AssemblyName><AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ]</AssemblyPublicKey><AssemblyVersion>1.0.x.x</AssemblyVersion><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ThreadingSafetyStatement>All public static members of this type are safe for multithreaded operations. No instance members are guaranteed to be thread safe.</ThreadingSafetyStatement><Base><BaseTypeName>System.Net.WebRequest</BaseTypeName></Base><Interfaces><Interface><InterfaceName>System.Runtime.Serialization.ISerializable</InterfaceName></Interface></Interfaces><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="T:System.Net.HttpWebRequest" /> class provides support for the properties and methods defined in <see cref="T:System.Net.WebRequest" /> and for additional properties and methods that enable the user to interact directly with servers using HTTP.</para><para>Do not use the <see cref="M:System.Net.HttpWebRequest.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)" /> constructor. Use the <see cref="Overload:System.Net.WebRequest.Create" /> method to initialize new <see cref="T:System.Net.HttpWebRequest" /> objects. If the scheme for the Uniform Resource Identifier (URI) is http:// or https://, <see cref="Overload:System.Net.WebRequest.Create" /> returns an <see cref="T:System.Net.HttpWebRequest" /> object.</para><para>The <see cref="M:System.Net.HttpWebRequest.GetResponse" /> method makes a synchronous request to the resource specified in the <see cref="P:System.Net.HttpWebRequest.RequestUri" /> property and returns an <see cref="T:System.Net.HttpWebResponse" /> that contains the response. You can make an asynchronous request to the resource using the <see cref="M:System.Net.HttpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object)" /> and <see cref="M:System.Net.HttpWebRequest.EndGetResponse(System.IAsyncResult)" /> methods.</para><para>When you want to send data to the resource, the <see cref="M:System.Net.HttpWebRequest.GetRequestStream" /> method returns a <see cref="T:System.IO.Stream" /> object to use to send data. The <see cref="M:System.Net.HttpWebRequest.BeginGetRequestStream(System.AsyncCallback,System.Object)" /> and <see cref="M:System.Net.HttpWebRequest.EndGetRequestStream(System.IAsyncResult)" /> methods provide asynchronous access to the send data stream.</para><para>For client authentication with <see cref="T:System.Net.HttpWebRequest" />, the client certificate must be installed in the My certificate store of the current user.</para><para>The <see cref="T:System.Net.HttpWebRequest" /> class throws a <see cref="T:System.Net.WebException" /> when errors occur while accessing a resource. The <see cref="P:System.Net.WebException.Status" /> property contains a <see cref="T:System.Net.WebExceptionStatus" /> value that indicates the source of the error. When <see cref="P:System.Net.WebException.Status" /> is <see cref="F:System.Net.WebExceptionStatus.ProtocolError" />, the <see cref="P:System.Net.WebException.Response" /> property contains the <see cref="T:System.Net.HttpWebResponse" /> received from the resource.</para><para><see cref="T:System.Net.HttpWebRequest" /> exposes common HTTP header values sent to the Internet resource as properties, set by methods, or set by the system; the following table contains a complete list. You can set other headers in the <see cref="P:System.Net.HttpWebRequest.Headers" /> property as name/value pairs. Note that servers and caches may change or add headers during the request.</para><para>The following table lists the HTTP headers that are set either by properties or methods or the system.</para><list type="table"><listheader><item><term><para>Header </para></term><description><para>Set by </para></description></item></listheader><item><term><para>Accept </para></term><description><para>Set by the <see cref="P:System.Net.HttpWebRequest.Accept" /> property. </para></description></item><item><term><para>Connection </para></term><description><para>Set by the <see cref="P:System.Net.HttpWebRequest.Connection" /> property, <see cref="P:System.Net.HttpWebRequest.KeepAlive" /> property. </para></description></item><item><term><para>Content-Length </para></term><description><para>Set by the <see cref="P:System.Net.HttpWebRequest.ContentLength" /> property. </para></description></item><item><term><para>Content-Type </para></term><description><para>Set by the <see cref="P:System.Net.HttpWebRequest.ContentType" /> property. </para></description></item><item><term><para>Expect </para></term><description><para>Set by the <see cref="P:System.Net.HttpWebRequest.Expect" /> property. </para></description></item><item><term><para>Date </para></term><description><para>Set by the system to current date. </para></description></item><item><term><para>Host </para></term><description><para>Set by the system to current host information. </para></description></item><item><term><para>If-Modified-Since </para></term><description><para>Set by the <see cref="P:System.Net.HttpWebRequest.IfModifiedSince" /> property. </para></description></item><item><term><para>Range </para></term><description><para>Set by the <see cref="M:System.Net.HttpWebRequest.AddRange(System.Int32,System.Int32)" /> method. </para></description></item><item><term><para>Referer </para></term><description><para>Set by the <see cref="P:System.Net.HttpWebRequest.Referer" /> property. </para></description></item><item><term><para>Transfer-Encoding </para></term><description><para>Set by the <see cref="P:System.Net.HttpWebRequest.TransferEncoding" /> property (the <see cref="P:System.Net.HttpWebRequest.SendChunked" /> property must be true). </para></description></item><item><term><para>User-Agent </para></term><description><para>Set by the <see cref="P:System.Net.HttpWebRequest.UserAgent" /> property. </para></description></item></list><block subset="none" type="note"><para><see cref="T:System.Net.HttpWebRequest" /> is registered automatically. You do not need to call the <see cref="M:System.Net.WebRequest.RegisterPrefix(System.String,System.Net.IWebRequestCreate)" /> method to register <see cref="T:System.Net.HttpWebRequest" /> before using URIs beginning with http:// or https://.</para></block><para>The local computer or application config file may specify that a default proxy be used. If the <see cref="P:System.Net.HttpWebRequest.Proxy" /> property is specified, then the proxy settings from the <see cref="P:System.Net.HttpWebRequest.Proxy" /> property override the local computer or application config file and the <see cref="T:System.Net.HttpWebRequest" /> instance will use the proxy settings specified. If no proxy is specified in a config file and the <see cref="P:System.Net.HttpWebRequest.Proxy" /> property is unspecified, the <see cref="T:System.Net.HttpWebRequest" /> class uses the proxy settings inherited from Internet Explorer on the local computer. If there are no proxy settings in Internet Explorer, the request is sent directly to the server.</para><para>The <see cref="T:System.Net.HttpWebRequest" /> class parses a proxy bypass list with wildcard characters inherited from Internet Explorer differently than the bypass list is parsed directly by Internet Explorer. For example, the <see cref="T:System.Net.HttpWebRequest" /> class will parse a bypass list of "nt*" from Internet Explorer as a regular expression of "nt.$". This differs from the native behavior of Internet Explorer. So a URL of "http://intxxxxx" would bypass the proxy using the <see cref="T:System.Net.HttpWebRequest" /> class, but would not bypass the proxy using Internet Explorer.</para><block subset="none" type="note"><para>The Framework caches SSL sessions as they are created and attempts to reuse a cached session for a new request, if possible. When attempting to reuse an SSL session, the Framework uses the first element of <see cref="P:System.Net.HttpWebRequest.ClientCertificates" /> (if there is one), or tries to reuse an anonymous sessions if <see cref="P:System.Net.HttpWebRequest.ClientCertificates" /> is empty.</para></block><block subset="none" type="note"><para>For security reasons, cookies are disabled by default. If you want to use cookies, use the <see cref="P:System.Net.HttpWebRequest.CookieContainer" /> property to enable cookies.</para></block></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Provides an HTTP-specific implementation of the <see cref="T:System.Net.WebRequest" /> class.</para></summary></Docs><Members><Member MemberName=".ctor"><MemberSignature Language="C#" Value="protected HttpWebRequest (System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext);" /><MemberSignature Language="ILAsm" Value=".method familyhidebysig specialname rtspecialname instance void .ctor(class System.Runtime.Serialization.SerializationInfo serializationInfo, valuetype System.Runtime.Serialization.StreamingContext streamingContext) cil managed" /><MemberType>Constructor</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.Obsolete("Serialization is obsoleted for this type", false)</AttributeName></Attribute></Attributes><Parameters><Parameter Name="serializationInfo" Type="System.Runtime.Serialization.SerializationInfo" /><Parameter Name="streamingContext" Type="System.Runtime.Serialization.StreamingContext" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>An application must run in full trust mode when using serialization.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Initializes a new instance of the <see cref="T:System.Net.HttpWebRequest" /> class from the specified instances of the <see cref="T:System.Runtime.Serialization.SerializationInfo" /> and <see cref="T:System.Runtime.Serialization.StreamingContext" /> classes.</para></summary><param name="serializationInfo"><attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Runtime.Serialization.SerializationInfo" /> object that contains the information required to serialize the new <see cref="T:System.Net.HttpWebRequest" /> object. </param><param name="streamingContext"><attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Runtime.Serialization.StreamingContext" /> object that contains the source and destination of the serialized stream associated with the new <see cref="T:System.Net.HttpWebRequest" /> object. </param></Docs></Member><Member MemberName="Abort"><MemberSignature Language="ILASM" Value=".method public hidebysig virtual void Abort()" /><MemberSignature Language="C#" Value="public override void Abort ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance void Abort() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters /><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="M:System.Net.HttpWebRequest.Abort" /> method cancels a request to a resource. After a request is canceled, calling the <see cref="M:System.Net.HttpWebRequest.GetResponse" />, <see cref="M:System.Net.HttpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object)" />, <see cref="M:System.Net.HttpWebRequest.EndGetResponse(System.IAsyncResult)" />, <see cref="M:System.Net.HttpWebRequest.GetRequestStream" />, <see cref="M:System.Net.HttpWebRequest.BeginGetRequestStream(System.AsyncCallback,System.Object)" />, or <see cref="M:System.Net.HttpWebRequest.EndGetRequestStream(System.IAsyncResult)" /> method causes a <see cref="T:System.Net.WebException" /> with the <see cref="P:System.Net.WebException.Status" /> property set to <see cref="F:System.Net.WebExceptionStatus.RequestCanceled" />.</para><para>The <see cref="M:System.Net.HttpWebRequest.Abort" /> method will synchronously execute the callback specified to the <see cref="M:System.Net.HttpWebRequest.BeginGetRequestStream(System.AsyncCallback,System.Object)" /> or <see cref="M:System.Net.HttpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object)" /> methods if the <see cref="M:System.Net.HttpWebRequest.Abort" /> method is called while either of these operations are outstanding. This can lead to potential deadlock issues.</para><block subset="none" type="note"><para>This member outputs trace information when you enable network tracing in your application. For more information, see <format type="text/html"><a href="E993B7C3-087F-45D8-9C02-9DDED936D804">Network Tracing</a></format>.</para></block></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Cancels a request to an Internet resource.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="Accept"><MemberSignature Language="ILASM" Value=".property string Accept { public hidebysig specialname instance string get_Accept() public hidebysig specialname instance void set_Accept(string value) }" /><MemberSignature Language="C#" Value="public string Accept { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance string Accept" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.String</ReturnType></ReturnValue><Parameters /><Docs><value><para> A <see cref="T:System.String" /> containing the value of the HTTP Accept header. The default value of this property is
<see langword="null" />.</para></value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>To clear the Accept HTTP header, set the <see cref="P:System.Net.HttpWebRequest.Accept" /> property to null.</para><block subset="none" type="note"><para>The value for this property is stored in <see cref="T:System.Net.WebHeaderCollection" />. If WebHeaderCollection is set, the property value is lost.</para></block></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets the value of the Accept HTTP header.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="AddRange"><MemberSignature Language="ILASM" Value=".method public hidebysig instance void AddRange(int32 range)" /><MemberSignature Language="C#" Value="public void AddRange (int range);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig instance void AddRange(int32 range) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="range" Type="System.Int32" /></Parameters><Docs><exception cref="T:System.InvalidOperationException">The range header could not be added.</exception><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="M:System.Net.HttpWebRequest.AddRange(System.Int32)" /> method adds a byte range header to the request.</para><para>If <paramref name="range" /> is positive, the <paramref name="range" /> parameter specifies the starting point of the range. The server should start sending data from the <paramref name="range" /> parameter specified to the end of the data in the HTTP entity.</para><para>If <paramref name="range" /> is negative, the <paramref name="range" /> parameter specifies the ending point of the range. The server should start sending data from the start of the data in the HTTP entity to the <paramref name="range" /> parameter specified.</para><para>Since all HTTP entities are represented in HTTP messages as sequences of bytes, the concept of a byte range is meaningful for any HTTP entity. However, not all clients and servers need to support byte-range operations. </para><para>The Range header on a request allows a client to request that it only wants to receive some part of the specified range of bytes in an HTTP entity. Servers are not required to support Range header requests. </para><para>An example of a Range header in an HTTP protocol request that requests the server send the first 100 bytes (from the start to byte position 99) would be the following: </para><para>Range: bytes=0-99\r\n\r\n</para><para>For this example, the <paramref name="range" /> parameter would be -99.</para><para>A HTTP server indicates support for Range headers with the Accept-Ranges header. An example of the Accept-Ranges header from a server that supports byte-ranges would be as follows:</para><para>Accept-Ranges: bytes\r\n\r\n</para><para>If an Accept-Ranges header is not received in the header of the response from the server, then the server does not support Range headers. An example of the Accept-Ranges header from a server that does not support ranges, but recognizes the Accept-Ranges header, would be as follows:</para><para>Accept-Ranges: none\r\n\r\n</para><para>When receiving the response from a range request, only the HTTP headers associated with the entire request are parsed and made available via properties on the <see cref="T:System.Net.HttpWebResponse" /> class. Headers associated with each range are returned in the response.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Adds a byte range header to a request for a specific range from the beginning or end of the requested data.</para></summary><param name="range"><attribution license="cc4" from="Microsoft" modified="false" />The starting or ending point of the range. </param></Docs><Excluded>0</Excluded></Member><Member MemberName="AddRange"><MemberSignature Language="C#" Value="public void AddRange (long range);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig instance void AddRange(int64 range) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="range" Type="System.Int64" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="M:System.Net.HttpWebRequest.AddRange(System.Int64)" /> method adds a byte range header to the request.</para><para>If <paramref name="range" /> is positive, the <paramref name="range" /> parameter specifies the starting point of the range. The server should start sending data from the <paramref name="range" /> parameter specified to the end of the data in the HTTP entity.</para><para>If <paramref name="range" /> is negative, the <paramref name="range" /> parameter specifies the ending point of the range. The server should start sending data from the start of the data in the HTTP entity to the <paramref name="range" /> parameter specified.</para><para>Since all HTTP entities are represented in HTTP messages as sequences of bytes, the concept of a byte range is meaningful for any HTTP entity. However, not all clients and servers need to support byte-range operations. </para><para>The Range header on a request allows a client to request that it only wants to receive some part of the specified range of bytes in an HTTP entity. Servers are not required to support Range header requests. </para><para>An example of a Range header in an HTTP protocol request that requests the server send the first 100 bytes (from the start to byte position 99) would be the following: </para><para>Range: bytes=0-99\r\n\r\n</para><para>For this example, the <paramref name="range" /> parameter would be -99.</para><para>A HTTP server indicates support for Range headers with the Accept-Ranges header. An example of the Accept-Ranges header from a server that supports byte-ranges would be as follows:</para><para>Accept-Ranges: bytes\r\n\r\n</para><para>If an Accept-Ranges header is not received in the header of the response from the server, then the server does not support Range headers. An example of the Accept-Ranges header from a server that does not support ranges, but recognizes the Accept-Ranges header, would be as follows:</para><para>Accept-Ranges: none\r\n\r\n</para><para>When receiving the response from a range request, only the HTTP headers associated with the entire request are parsed and made available via properties on the <see cref="T:System.Net.HttpWebResponse" /> class. Headers associated with each range are returned in the response.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Adds a byte range header to a request for a specific range from the beginning or end of the requested data.</para></summary><param name="range"><attribution license="cc4" from="Microsoft" modified="false" />The starting or ending point of the range.</param></Docs></Member><Member MemberName="AddRange"><MemberSignature Language="ILASM" Value=".method public hidebysig instance void AddRange(int32 from, int32 to)" /><MemberSignature Language="C#" Value="public void AddRange (int from, int to);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig instance void AddRange(int32 from, int32 to) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="from" Type="System.Int32" /><Parameter Name="to" Type="System.Int32" /></Parameters><Docs><exception cref="T:System.ArgumentOutOfRangeException"><para><paramref name="from " /> &lt; 0.</para><para>-or-</para><para><paramref name="to " /> &lt; 0.</para><para>-or-</para><para><paramref name="from " /> &gt; <paramref name="to " />.</para></exception><exception cref="T:System.InvalidOperationException">The range header could not be added.</exception><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="M:System.Net.HttpWebRequest.AddRange(System.Int32,System.Int32)" /> method adds a byte range header to the request.</para><para>Since all HTTP entities are represented in HTTP messages as sequences of bytes, the concept of a byte range is meaningful for any HTTP entity. However, not all clients and servers need to support byte-range operations. </para><para>The Range header on a request allows a client to request that it only wants to receive some part of the specified range of bytes in an HTTP entity. Servers are not required to support Range header requests. </para><para>An example of a Range header in an HTTP protocol request that requests the first 100 bytes would be would be the following: </para><para>Range: bytes=0-99\r\n\r\n</para><para>For this example, the <paramref name="from" /> parameter would be specified as 0 and the <paramref name="to" /> parameter would be specified as 99. The range specifier is automatically set as "bytes" by this method. </para><para>A HTTP server indicates support for Range headers with the Accept-Ranges header. An example of the Accept-Ranges header from a server that supports byte-ranges would be as follows:</para><para>Accept-Ranges: bytes\r\n\r\n</para><para>If an Accept-Ranges header is not received in the header of the response from the server, then the server does not support Range headers. An example of the Accept-Ranges header from a server that does not support ranges, but recognizes the Accept-Ranges header, would be as follows:</para><para>Accept-Ranges: none\r\n\r\n</para><para>When receiving the response from a range request, only the HTTP headers associated with the entire request are parsed and made available via properties on the <see cref="T:System.Net.HttpWebResponse" /> class. Headers associated with each range are returned in the response.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Adds a byte range header to the request for a specified range.</para></summary><param name="from"><attribution license="cc4" from="Microsoft" modified="false" />The position at which to start sending data. </param><param name="to"><attribution license="cc4" from="Microsoft" modified="false" />The position at which to stop sending data. </param></Docs><Excluded>0</Excluded></Member><Member MemberName="AddRange"><MemberSignature Language="C#" Value="public void AddRange (long from, long to);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig instance void AddRange(int64 from, int64 to) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="from" Type="System.Int64" /><Parameter Name="to" Type="System.Int64" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="M:System.Net.HttpWebRequest.AddRange(System.Int64,System.Int64)" /> method adds a byte range header to the request.</para><para>Since all HTTP entities are represented in HTTP messages as sequences of bytes, the concept of a byte range is meaningful for any HTTP entity. However, not all clients and servers need to support byte-range operations. </para><para>The Range header on a request allows a client to request that it only wants to receive some part of the specified range of bytes in an HTTP entity. Servers are not required to support Range header requests. </para><para>An example of a Range header in an HTTP protocol request that requests the first 100 bytes would be would be the following: </para><para>Range: bytes=0-99\r\n\r\n</para><para>For this example, the <paramref name="from" /> parameter would be specified as 0 and the <paramref name="to" /> parameter would be specified as 99. The range specifier is automatically set as "bytes" by this method. </para><para>A HTTP server indicates support for Range headers with the Accept-Ranges header. An example of the Accept-Ranges header from a server that supports byte-ranges would be as follows:</para><para>Accept-Ranges: bytes\r\n\r\n</para><para>If an Accept-Ranges header is not received in the header of the response from the server, then the server does not support Range headers. An example of the Accept-Ranges header from a server that does not support ranges, but recognizes the Accept-Ranges header, would be as follows:</para><para>Accept-Ranges: none\r\n\r\n</para><para>When receiving the response from a range request, only the HTTP headers associated with the entire request are parsed and made available via properties on the <see cref="T:System.Net.HttpWebResponse" /> class. Headers associated with each range are returned in the response.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Adds a byte range header to the request for a specified range.</para></summary><param name="from"><attribution license="cc4" from="Microsoft" modified="false" />The position at which to start sending data.</param><param name="to"><attribution license="cc4" from="Microsoft" modified="false" />The position at which to stop sending data.</param></Docs></Member><Member MemberName="AddRange"><MemberSignature Language="ILASM" Value=".method public hidebysig instance void AddRange(string rangeSpecifier, int32 range)" /><MemberSignature Language="C#" Value="public void AddRange (string rangeSpecifier, int range);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig instance void AddRange(string rangeSpecifier, int32 range) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="rangeSpecifier" Type="System.String" /><Parameter Name="range" Type="System.Int32" /></Parameters><Docs><exception cref="T:System.ArgumentNullException"><paramref name="rangeSpecifier " />is <see langword="null" />.</exception><exception cref="T:System.ArgumentException"><paramref name="rangeSpecifier" /> is invalid.</exception><exception cref="T:System.InvalidOperationException">The range header could not be added.</exception><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="M:System.Net.HttpWebRequest.AddRange(System.String,System.Int32)" /> method adds a Range header to the request.</para><para>If <paramref name="range" /> is positive, the <paramref name="range" /> parameter specifies the starting point of the range. The server should start sending data from the <paramref name="range" /> parameter specified to the end of the data in the HTTP entity.</para><para>If <paramref name="range" /> is negative, the <paramref name="range" /> parameter specifies the ending point of the range. The server should start sending data from the start of the data in the HTTP entity to the <paramref name="range" /> parameter specified.</para><para>Since all HTTP entities are represented in HTTP messages as sequences of bytes, the concept of a byte range is meaningful for any HTTP entity. However, not all clients and servers need to support byte-range operations. </para><para>The Range header on a request allows a client to request that it only wants to receive some part of the specified range of bytes in an HTTP entity. Servers are not required to support Range header requests. </para><para>The <paramref name="rangeSpecifier" /> parameter would normally be specified as a "bytes", since this is the only range specifier recognized by most HTTP servers. Setting the <paramref name="rangeSpecifier" /> parameter to some other string allows support for custom range specifiers other than bytes (the byte-range specifier defined in RFC 2616 by the IETF).</para><para>An example of a Range header in an HTTP protocol request that requests the first 100 bytes would be would be the following: </para><para>Range: bytes=-99\r\n\r\n</para><para>For this example, the <paramref name="rangeSpecifier" /> parameter would be specified as "bytes" and the <paramref name="range" /> parameter would be -99.</para><para>A HTTP server indicates support for Range headers with the Accept-Ranges header in the response. An example of the Accept-Ranges header from a server that supports byte-ranges would be as follows:</para><para>Accept-Ranges: bytes\r\n\r\n</para><para>If an Accept-Ranges header is not received in the header of the response from the server, then the server does not support Range headers. An example of the Accept-Ranges header from a server that does not support ranges, but recognizes the Accept-Ranges header, would be as follows:</para><para>Accept-Ranges: none\r\n\r\n</para><para>When receiving the response from a range request, only the HTTP headers associated with the entire request are parsed and made available via properties on the <see cref="T:System.Net.HttpWebResponse" /> class. Headers associated with each range are returned in the response.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Adds a Range header to a request for a specific range from the beginning or end of the requested data.</para></summary><param name="rangeSpecifier"><attribution license="cc4" from="Microsoft" modified="false" />The description of the range. </param><param name="range"><attribution license="cc4" from="Microsoft" modified="false" />The starting or ending point of the range. </param></Docs><Excluded>0</Excluded></Member><Member MemberName="AddRange"><MemberSignature Language="C#" Value="public void AddRange (string rangeSpecifier, long range);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig instance void AddRange(string rangeSpecifier, int64 range) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="rangeSpecifier" Type="System.String" /><Parameter Name="range" Type="System.Int64" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="M:System.Net.HttpWebRequest.AddRange(System.String,System.Int64)" /> method adds a Range header to the request.</para><para>If <paramref name="range" /> is positive, the <paramref name="range" /> parameter specifies the starting point of the range. The server should start sending data from the <paramref name="range" /> parameter specified to the end of the data in the HTTP entity.</para><para>If <paramref name="range" /> is negative, the <paramref name="range" /> parameter specifies the ending point of the range. The server should start sending data from the start of the data in the HTTP entity to the <paramref name="range" /> parameter specified.</para><para>Since all HTTP entities are represented in HTTP messages as sequences of bytes, the concept of a byte range is meaningful for any HTTP entity. However, not all clients and servers need to support byte-range operations. </para><para>The Range header on a request allows a client to request that it only wants to receive some part of the specified range of bytes in an HTTP entity. Servers are not required to support Range header requests. </para><para>The <paramref name="rangeSpecifier" /> parameter would normally be specified as a "bytes", since this is the only range specifier recognized by most HTTP servers. Setting the <paramref name="rangeSpecifier" /> parameter to some other string allows support for custom range specifiers other than bytes (the byte-range specifier defined in RFC 2616 by the IETF).</para><para>An example of a Range header in an HTTP protocol request that requests the first 100 bytes would be would be the following: </para><para>Range: bytes=-99\r\n\r\n</para><para>For this example, the <paramref name="rangeSpecifier" /> parameter would be specified as "bytes" and the <paramref name="range" /> parameter would be -99.</para><para>A HTTP server indicates support for Range headers with the Accept-Ranges header in the response. An example of the Accept-Ranges header from a server that supports byte-ranges would be as follows:</para><para>Accept-Ranges: bytes\r\n\r\n</para><para>If an Accept-Ranges header is not received in the header of the response from the server, then the server does not support Range headers. An example of the Accept-Ranges header from a server that does not support ranges, but recognizes the Accept-Ranges header, would be as follows:</para><para>Accept-Ranges: none\r\n\r\n</para><para>When receiving the response from a range request, only the HTTP headers associated with the entire request are parsed and made available via properties on the <see cref="T:System.Net.HttpWebResponse" /> class. Headers associated with each range are returned in the response.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Adds a Range header to a request for a specific range from the beginning or end of the requested data.</para></summary><param name="rangeSpecifier"><attribution license="cc4" from="Microsoft" modified="false" />The description of the range.</param><param name="range"><attribution license="cc4" from="Microsoft" modified="false" />The starting or ending point of the range.</param></Docs></Member><Member MemberName="AddRange"><MemberSignature Language="ILASM" Value=".method public hidebysig instance void AddRange(string rangeSpecifier, int32 from, int32 to)" /><MemberSignature Language="C#" Value="public void AddRange (string rangeSpecifier, int from, int to);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig instance void AddRange(string rangeSpecifier, int32 from, int32 to) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="rangeSpecifier" Type="System.String" /><Parameter Name="from" Type="System.Int32" /><Parameter Name="to" Type="System.Int32" /></Parameters><Docs><exception cref="T:System.ArgumentNullException"><paramref name="rangeSpecifier " />is <see langword="null" />.</exception><exception cref="T:System.ArgumentOutOfRangeException"><para><paramref name="from " />&lt; 0.</para><para>-or-</para><para><paramref name="to " />&lt; 0.</para><para>-or-</para><para><paramref name="from " />&gt; <paramref name="to " />.</para></exception><exception cref="T:System.ArgumentException"><paramref name="rangeSpecifier" /> is invalid.</exception><exception cref="T:System.InvalidOperationException">The range header could not be added.</exception><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="M:System.Net.HttpWebRequest.AddRange(System.String,System.Int32,System.Int32)" /> method adds a Range header to the request.</para><para>Since all HTTP entities are represented in HTTP messages as sequences of bytes, the concept of a byte range is meaningful for any HTTP entity. However, not all clients and servers need to support byte-range operations. </para><para>The Range header on a request allows a client to request that it only wants to receive some part of the specified range of bytes in an HTTP entity. Servers are not required to support Range header requests. </para><para>The <paramref name="rangeSpecifier" /> parameter would normally be specified as a "bytes", since this is the only range specifier recognized by most HTTP servers. Setting the <paramref name="rangeSpecifier" /> parameter to some other string allows support for custom range specifiers other than bytes (the byte-range specifier defined in RFC 2616 by the IETF).</para><para>An example of a Range header in an HTTP protocol request that requests the first 100 bytes would be would be the following: </para><para>Range: bytes=0-99\r\n\r\n</para><para>For this example, the <paramref name="rangeSpecifier" /> parameter would be specified as a "bytes", the <paramref name="from" /> parameter would be 0, and the <paramref name="to" /> parameter would be 99.</para><para>A HTTP server indicates support for Range headers with the Accept-Ranges header in the response. An example of the Accept-Ranges header from a server that supports byte-ranges would be as follows:</para><para>Accept-Ranges: bytes\r\n\r\n</para><para>The string specified in the Accept-Ranges header is the range-specifier that would be by specified in the <paramref name="rangeSpecifier" /> parameter for this method.</para><para>If an Accept-Ranges header is not received in the header of the response from the server, then the server does not support Range headers. An example of the Accept-Ranges header from a server that does not support ranges, but recognizes the Accept-Ranges header, would be as follows:</para><para>Accept-Ranges: none\r\n\r\n</para><para>When receiving the response from a range request, only the HTTP headers associated with the entire request are parsed and made available via properties on the <see cref="T:System.Net.HttpWebResponse" /> class. Headers associated with each range are returned in the response.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Adds a range header to a request for a specified range.</para></summary><param name="rangeSpecifier"><attribution license="cc4" from="Microsoft" modified="false" />The description of the range. </param><param name="from"><attribution license="cc4" from="Microsoft" modified="false" />The position at which to start sending data. </param><param name="to"><attribution license="cc4" from="Microsoft" modified="false" />The position at which to stop sending data. </param></Docs><Excluded>0</Excluded></Member><Member MemberName="AddRange"><MemberSignature Language="C#" Value="public void AddRange (string rangeSpecifier, long from, long to);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig instance void AddRange(string rangeSpecifier, int64 from, int64 to) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="rangeSpecifier" Type="System.String" /><Parameter Name="from" Type="System.Int64" /><Parameter Name="to" Type="System.Int64" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="M:System.Net.HttpWebRequest.AddRange(System.String,System.Int64,System.Int64)" /> method adds a Range header to the request.</para><para>Since all HTTP entities are represented in HTTP messages as sequences of bytes, the concept of a byte range is meaningful for any HTTP entity. However, not all clients and servers need to support byte-range operations. </para><para>The Range header on a request allows a client to request that it only wants to receive some part of the specified range of bytes in an HTTP entity. Servers are not required to support Range header requests. </para><para>The <paramref name="rangeSpecifier" /> parameter would normally be specified as a "bytes", since this is the only range specifier recognized by most HTTP servers. Setting the <paramref name="rangeSpecifier" /> parameter to some other string allows support for custom range specifiers other than bytes (the byte-range specifier defined in RFC 2616 by the IETF).</para><para>An example of a Range header in an HTTP protocol request that requests the first 100 bytes would be would be the following: </para><para>Range: bytes=0-99\r\n\r\n</para><para>For this example, the <paramref name="rangeSpecifier" /> parameter would be specified as a "bytes", the <paramref name="from" /> parameter would be 0, and the <paramref name="to" /> parameter would be 99.</para><para>A HTTP server indicates support for Range headers with the Accept-Ranges header in the response. An example of the Accept-Ranges header from a server that supports byte-ranges would be as follows:</para><para>Accept-Ranges: bytes\r\n\r\n</para><para>The string specified in the Accept-Ranges header is the range-specifier that would be by specified in the <paramref name="rangeSpecifier" /> parameter for this method.</para><para>If an Accept-Ranges header is not received in the header of the response from the server, then the server does not support Range headers. An example of the Accept-Ranges header from a server that does not support ranges, but recognizes the Accept-Ranges header, would be as follows:</para><para>Accept-Ranges: none\r\n\r\n</para><para>When receiving the response from a range request, only the HTTP headers associated with the entire request are parsed and made available via properties on the <see cref="T:System.Net.HttpWebResponse" /> class. Headers associated with each range are returned in the response.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Adds a range header to a request for a specified range.</para></summary><param name="rangeSpecifier"><attribution license="cc4" from="Microsoft" modified="false" />The description of the range.</param><param name="from"><attribution license="cc4" from="Microsoft" modified="false" />The position at which to start sending data.</param><param name="to"><attribution license="cc4" from="Microsoft" modified="false" />The position at which to stop sending data.</param></Docs></Member><Member MemberName="Address"><MemberSignature Language="ILASM" Value=".property class System.Uri Address { public hidebysig specialname instance class System.Uri get_Address() }" /><MemberSignature Language="C#" Value="public Uri Address { get; }" /><MemberSignature Language="ILAsm" Value=".property instance class System.Uri Address" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Uri</ReturnType></ReturnValue><Parameters /><Docs><value><para>A <see cref="T:System.Uri" />
identifying the Internet resource that responds to the current request.
The default is the URI used by the <see cref="M:System.Net.WebRequest.Create(System.Uri,System.Boolean)" qualify="true" />
method to initialize
the current
instance. </para></value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="P:System.Net.HttpWebRequest.Address" /> property is set to the URI after any redirections that happen during the request are complete.</para><para>The URI of the original request is kept in the <see cref="P:System.Net.HttpWebRequest.RequestUri" /> property.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets the Uniform Resource Identifier (URI) of the Internet resource that actually responds to the request.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="AllowAutoRedirect"><MemberSignature Language="ILASM" Value=".property bool AllowAutoRedirect { public hidebysig specialname instance bool get_AllowAutoRedirect() public hidebysig specialname instance void set_AllowAutoRedirect(bool value) }" /><MemberSignature Language="C#" Value="public bool AllowAutoRedirect { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance bool AllowAutoRedirect" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters /><Docs><value><para><see langword="true " />if the current request will automatically follow redirection
   responses from the Internet resource; otherwise <see langword="false " />
   . The default value is
<see langword="true" />.</para></value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>Set <see cref="P:System.Net.HttpWebRequest.AllowAutoRedirect" /> to true if you want the request to automatically follow HTTP redirection headers to the new location of the resource. The maximum number of redirections to follow is set by the <see cref="P:System.Net.HttpWebRequest.MaximumAutomaticRedirections" /> property.</para><para>If <see cref="P:System.Net.HttpWebRequest.AllowAutoRedirect" /> is set to false, all responses with an HTTP status code from 300 to 399 is returned to the application.</para><para>The Authorization header is cleared on auto-redirects and <see cref="T:System.Net.HttpWebRequest" /> automatically tries to re-authenticate to the redirected location. In practice, this means that an application can't put custom authentication information into the Authorization header if it is possible to encounter redirection. Instead, the application must implement and register a custom authentication module. The <see cref="T:System.Net.AuthenticationManager" /> and related class are used to implement a custom authentication module. The <see cref="M:System.Net.AuthenticationManager.Register(System.Net.IAuthenticationModule)" /> method registers a custom authentication module. </para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets a value that indicates whether the request should follow redirection responses.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="AllowReadStreamBuffering"><MemberSignature Language="C#" Value="public virtual bool AllowReadStreamBuffering { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance bool AllowReadStreamBuffering" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Docs><value>To be added.</value><remarks>To be added.</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets a value that indicates whether to buffer the received from the  Internet resource.</para></summary></Docs></Member><Member MemberName="AllowWriteStreamBuffering"><MemberSignature Language="ILASM" Value=".property bool AllowWriteStreamBuffering { public hidebysig specialname instance bool get_AllowWriteStreamBuffering() public hidebysig specialname instance void set_AllowWriteStreamBuffering(bool value) }" /><MemberSignature Language="C#" Value="public bool AllowWriteStreamBuffering { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance bool AllowWriteStreamBuffering" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters /><Docs><value><para><see langword="true " />to enable
   buffering of the data sent
   to the Internet resource requested by the current instance; <see langword="false " />to disable buffering. The default is
<see langword="true" />.</para></value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>When <see cref="P:System.Net.HttpWebRequest.AllowWriteStreamBuffering" /> is true, the data is buffered in memory so it is ready to be resent in the event of redirections or authentication requests.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets a value that indicates whether to buffer the data sent to the Internet resource.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="AutomaticDecompression"><MemberSignature Language="C#" Value="public System.Net.DecompressionMethods AutomaticDecompression { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance valuetype System.Net.DecompressionMethods AutomaticDecompression" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Net.DecompressionMethods</ReturnType></ReturnValue><Docs><value>To be added.</value><remarks>To be added.</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets the type of decompression that is used.</para></summary></Docs></Member><Member MemberName="BeginGetRequestStream"><MemberSignature Language="ILASM" Value=".method public hidebysig virtual class System.IAsyncResult BeginGetRequestStream(class System.AsyncCallback callback, object state)" /><MemberSignature Language="C#" Value="public override IAsyncResult BeginGetRequestStream (AsyncCallback callback, object state);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance class System.IAsyncResult BeginGetRequestStream(class System.AsyncCallback callback, object state) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.IAsyncResult</ReturnType></ReturnValue><Parameters><Parameter Name="callback" Type="System.AsyncCallback" /><Parameter Name="state" Type="System.Object" /></Parameters><Docs><exception cref="T:System.InvalidOperationException"><para>The stream is being used by a previous call to <see cref="M:System.Net.HttpWebRequest.BeginGetRequestStream(System.AsyncCallback,System.Object)" /> .</para><para>-or-</para><para>No writeable stream is available.</para></exception><exception cref="T:System.Net.ProtocolViolationException"><para>The <see cref="P:System.Net.HttpWebRequest.ContentLength" /> property of the current instance is not set.</para><para>-or-</para><para>The <see cref="P:System.Net.HttpWebRequest.Method" /> property of the current instance is "GET" or "HEAD".</para></exception><exception cref="T:System.Net.WebException"><para><see cref="M:System.Net.HttpWebRequest.Abort" /> was previously called.</para><para>-or-</para><para>An error occurred while processing the request.</para></exception><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="M:System.Net.HttpWebRequest.BeginGetRequestStream(System.AsyncCallback,System.Object)" /> method starts an asynchronous request for a stream used to send data for the <see cref="T:System.Net.HttpWebRequest" />. The asynchronous callback method uses the <see cref="M:System.Net.HttpWebRequest.EndGetRequestStream(System.IAsyncResult)" /> method to return the actual stream.</para><para>The <see cref="M:System.Net.HttpWebRequest.BeginGetRequestStream(System.AsyncCallback,System.Object)" /> method requires some synchronous setup tasks to complete (DNS resolution, proxy detection, and TCP socket connection, for example) before this method becomes asynchronous. As a result, this method should never be called on a user interface (UI) thread because it might take considerable time (up to several minutes depending on network settings) to complete the initial synchronous setup tasks before an exception for an error is thrown or the method succeeds.  </para><para>To learn more about the thread pool, see <format type="text/html"><a href="2BE05B06-A42E-4C9D-A739-96C21D673927">[&lt;topic://cpconthreadpooling&gt;]</a></format>.</para><block subset="none" type="note"><para>Your application cannot mix synchronous and asynchronous methods for a particular request. If you call the <see cref="M:System.Net.HttpWebRequest.BeginGetRequestStream(System.AsyncCallback,System.Object)" /> method, you must use the <see cref="M:System.Net.HttpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object)" /> method to retrieve the response.</para></block><block subset="none" type="note"><para>This member outputs trace information when you enable network tracing in your application. For more information, see <format type="text/html"><a href="E993B7C3-087F-45D8-9C02-9DDED936D804">[&lt;topic://conUsingNetworkTracing&gt;]</a></format>.</para></block></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Begins an asynchronous request for a <see cref="T:System.IO.Stream" /> object to use to write data.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>An <see cref="T:System.IAsyncResult" /> that references the asynchronous request.</para></returns><param name="callback"><attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.AsyncCallback" /> delegate. </param><param name="state"><attribution license="cc4" from="Microsoft" modified="false" />The state object for this request. </param></Docs><Excluded>0</Excluded></Member><Member MemberName="BeginGetResponse"><MemberSignature Language="ILASM" Value=".method public hidebysig virtual class System.IAsyncResult BeginGetResponse(class System.AsyncCallback callback, object state)" /><MemberSignature Language="C#" Value="public override IAsyncResult BeginGetResponse (AsyncCallback callback, object state);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance class System.IAsyncResult BeginGetResponse(class System.AsyncCallback callback, object state) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.IAsyncResult</ReturnType></ReturnValue><Parameters><Parameter Name="callback" Type="System.AsyncCallback" /><Parameter Name="state" Type="System.Object" /></Parameters><Docs><exception cref="T:System.InvalidOperationException"><see cref="M:System.Net.HttpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object)" /> or <see cref="M:System.Net.HttpWebRequest.GetResponse" /> was previously called on this instance.</exception><exception cref="T:System.Net.ProtocolViolationException">The <see cref="P:System.Net.HttpWebRequest.ContentLength" /> property of the current instance has not been set.</exception><exception cref="T:System.Net.WebException"><see cref="M:System.Net.HttpWebRequest.Abort" /> was previously called.</exception><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="M:System.Net.HttpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object)" /> method starts an asynchronous request for a response from the Internet resource. The asynchronous callback method uses the <see cref="M:System.Net.HttpWebRequest.EndGetResponse(System.IAsyncResult)" /> method to return the actual <see cref="T:System.Net.WebResponse" />.</para><para>A <see cref="T:System.Net.ProtocolViolationException" /> is thrown in several cases when the properties set on the <see cref="T:System.Net.HttpWebRequest" /> class are conflicting. This exception occurs if an application sets the <see cref="P:System.Net.HttpWebRequest.ContentLength" /> property and the <see cref="P:System.Net.HttpWebRequest.SendChunked" /> property to true, and then sends an HTTP GET request. This exception occurs if an application tries to send chunked to a server that only supports HTTP 1.0 protocol, where this is not supported. This exception occurs if an application tries to send data without setting the <see cref="P:System.Net.HttpWebRequest.ContentLength" /> property or the <see cref="P:System.Net.HttpWebRequest.SendChunked" /> is false when buffering is disabled and on a keepalive connection (the <see cref="P:System.Net.HttpWebRequest.KeepAlive" /> property is true).</para><para>If a <see cref="T:System.Net.WebException" /> is thrown, use the <see cref="P:System.Net.WebException.Response" /> and <see cref="P:System.Net.WebException.Status" /> properties of the exception to determine the response from the server.</para><para>The <see cref="M:System.Net.HttpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object)" /> method requires some synchronous setup tasks to complete (DNS resolution, proxy detection, and TCP socket connection, for example) before this method becomes asynchronous. As a result, this method should never be called on a user interface (UI) thread because it might take considerable time (up to several minutes depending on network settings) to complete the initial synchronous setup tasks before an exception for an error is thrown or the method succeeds.  </para><para>To learn more about the thread pool, see <format type="text/html"><a href="2BE05B06-A42E-4C9D-A739-96C21D673927">[&lt;topic://cpconthreadpooling&gt;]</a></format>.</para><block subset="none" type="note"><para>Your application cannot mix synchronous and asynchronous methods for a particular request. If you call the <see cref="M:System.Net.HttpWebRequest.BeginGetRequestStream(System.AsyncCallback,System.Object)" /> method, you must use the <see cref="M:System.Net.HttpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object)" /> method to retrieve the response. </para></block><block subset="none" type="note"><para>This member outputs trace information when you enable network tracing in your application. For more information, see <format type="text/html"><a href="E993B7C3-087F-45D8-9C02-9DDED936D804">[&lt;topic://conUsingNetworkTracing&gt;]</a></format>.</para></block></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Begins an asynchronous request to an Internet resource.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>An <see cref="T:System.IAsyncResult" /> that references the asynchronous request for a response.</para></returns><param name="callback"><attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.AsyncCallback" /> delegate </param><param name="state"><attribution license="cc4" from="Microsoft" modified="false" />The state object for this request. </param></Docs><Excluded>0</Excluded></Member><Member MemberName="ClientCertificates"><MemberSignature Language="C#" Value="public System.Security.Cryptography.X509Certificates.X509CertificateCollection ClientCertificates { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance class System.Security.Cryptography.X509Certificates.X509CertificateCollection ClientCertificates" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>set: System.MonoTODO</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.Security.Cryptography.X509Certificates.X509CertificateCollection</ReturnType></ReturnValue><Docs><value>To be added.</value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>An application can add a certificate to a collection, but might not have access rights to it. To use a certificate contained in the collection, the application must have the same access rights as the entity that issued the certificate.</para><block subset="none" type="note"><para>The Framework caches SSL sessions as they are created and attempts to reuse a cached session for a new request, if possible. When attempting to reuse an SSL session, the Framework uses the first element of <see cref="P:System.Net.HttpWebRequest.ClientCertificates" /> (if there is one), or tries to reuse an anonymous sessions if <see cref="P:System.Net.HttpWebRequest.ClientCertificates" /> is empty.</para></block><block subset="none" type="note"><para>For performance reasons, you shouldn't add a client certificate to a <see cref="T:System.Net.HttpWebRequest" /> unless you know the server will ask for it.</para><para /><para>For a code example illustrating how to enumerate the certificates in the client certificate store, see the <see cref="T:System.Security.Cryptography.X509Certificates.X509Certificate2Collection" /> class.</para></block></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets the collection of security certificates that are associated with this request.</para></summary></Docs></Member><Member MemberName="Connection"><MemberSignature Language="ILASM" Value=".property string Connection { public hidebysig specialname instance string get_Connection() public hidebysig specialname instance void set_Connection(string value) }" /><MemberSignature Language="C#" Value="public string Connection { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance string Connection" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.String</ReturnType></ReturnValue><Parameters /><Docs><value><para> A <see cref="T:System.String" /> containing the
   value of the Connection HTTP header. The
   default value is <see langword="null" />. </para></value><exception cref="T:System.ArgumentException">The value of <see cref="P:System.Net.HttpWebRequest.Connection" /> is set to "Keep-alive" or "Close". This value is case insensitive.</exception><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The request sends the <see cref="P:System.Net.HttpWebRequest.Connection" /> property to the Internet resource as the Connection HTTP header. If the value of the <see cref="P:System.Net.HttpWebRequest.KeepAlive" /> property is true, the value "Keep-alive" is appended to the end of the Connection header.</para><para>To clear the Connection HTTP header, set the <see cref="P:System.Net.HttpWebRequest.Connection" /> property to null.</para><para>Changing the <see cref="P:System.Net.HttpWebRequest.Connection" /> property after the request has been started by calling the <see cref="M:System.Net.HttpWebRequest.GetRequestStream" />, <see cref="M:System.Net.HttpWebRequest.BeginGetRequestStream(System.AsyncCallback,System.Object)" />, <see cref="M:System.Net.HttpWebRequest.GetResponse" />, or <see cref="M:System.Net.HttpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object)" /> method throws an <see cref="T:System.InvalidOperationException" />.</para><block subset="none" type="note"><para>The value for this property is stored in <see cref="T:System.Net.WebHeaderCollection" />. If WebHeaderCollection is set, the property value is lost.</para></block></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets the value of the Connection HTTP header.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="ConnectionGroupName"><MemberSignature Language="ILASM" Value=".property string ConnectionGroupName { public hidebysig virtual specialname string get_ConnectionGroupName() public hidebysig virtual specialname void set_ConnectionGroupName(string value) }" /><MemberSignature Language="C#" Value="public override string ConnectionGroupName { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance string ConnectionGroupName" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.String</ReturnType></ReturnValue><Parameters /><Docs><value><para>A <see cref="T:System.String" /> that contains the name of the connection group for the current instance. The default value is
<see langword="null" />.</para></value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="P:System.Net.HttpWebRequest.ConnectionGroupName" /> property enables you to associate a request with a connection group. This is useful when your application makes requests to one server for different users, such as a Web site that retrieves customer information from a database server.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets the name of the connection group for the request.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="ContentLength"><MemberSignature Language="ILASM" Value=".property int64 ContentLength { public hidebysig virtual specialname int64 get_ContentLength() public hidebysig virtual specialname void set_ContentLength(int64 value) }" /><MemberSignature Language="C#" Value="public override long ContentLength { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance int64 ContentLength" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Int64</ReturnType></ReturnValue><Parameters /><Docs><value><para>A <see cref="T:System.Int64" /> value that specifies the number of bytes of data to send to the Internet resource. The default is -1,
   which indicates that this value has not been set.</para></value><exception cref="T:System.InvalidOperationException">Data has already been written to the request stream.</exception><exception cref="T:System.ArgumentOutOfRangeException">A value less than zero is specified for a set operation.</exception><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="P:System.Net.HttpWebRequest.ContentLength" /> property contains the value to send as the Content-length HTTP header with the request.</para><para>Any value other than -1 in the <see cref="P:System.Net.HttpWebRequest.ContentLength" /> property indicates that the request uploads data and that only methods that upload data are allowed to be set in the <see cref="P:System.Net.HttpWebRequest.Method" /> property.</para><para>After the <see cref="P:System.Net.HttpWebRequest.ContentLength" /> property is set to a value, that number of bytes must be written to the request stream that is returned by calling the <see cref="M:System.Net.HttpWebRequest.GetRequestStream" /> method or both the <see cref="M:System.Net.HttpWebRequest.BeginGetRequestStream(System.AsyncCallback,System.Object)" /> and the <see cref="M:System.Net.HttpWebRequest.EndGetRequestStream(System.IAsyncResult)" /> methods.</para><block subset="none" type="note"><para>The value for this property is stored in <see cref="T:System.Net.WebHeaderCollection" />. If WebHeaderCollection is set, the property value is lost.</para></block></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets the Content-length HTTP header.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="ContentType"><MemberSignature Language="ILASM" Value=".property string ContentType { public hidebysig virtual specialname string get_ContentType() public hidebysig virtual specialname void set_ContentType(string value) }" /><MemberSignature Language="C#" Value="public override string ContentType { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance string ContentType" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.String</ReturnType></ReturnValue><Parameters /><Docs><value><para>The value of the Content-type HTTP header of the current instance. The default
      value is <see langword="null" />
      . </para></value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="P:System.Net.HttpWebRequest.ContentType" /> property contains the media type of the request. Values assigned to the <see cref="P:System.Net.HttpWebRequest.ContentType" /> property replace any existing contents when the request sends the Content-type HTTP header.</para><para>To clear the Content-type HTTP header, set the <see cref="P:System.Net.HttpWebRequest.ContentType" /> property to null.</para><block subset="none" type="note"><para>The value for this property is stored in <see cref="T:System.Net.WebHeaderCollection" /> . If <see cref="T:System.Net.WebHeaderCollection" /> is set, the property value is lost.</para></block></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets the value of the Content-type HTTP header.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="ContinueDelegate"><MemberSignature Language="ILASM" Value=".property class System.Net.HttpContinueDelegate ContinueDelegate { public hidebysig specialname instance class System.Net.HttpContinueDelegate get_ContinueDelegate() public hidebysig specialname instance void set_ContinueDelegate(class System.Net.HttpContinueDelegate value) }" /><MemberSignature Language="C#" Value="public System.Net.HttpContinueDelegate ContinueDelegate { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance class System.Net.HttpContinueDelegate ContinueDelegate" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Net.HttpContinueDelegate</ReturnType></ReturnValue><Parameters /><Docs><value><para> A <see cref="T:System.Net.HttpContinueDelegate" /> 
that references the methods that are invoked when an HTTP Continue response is
received. The default value is <see langword="null" />
.</para></value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="P:System.Net.HttpWebRequest.ContinueDelegate" /> property specifies the callback method to call when the client receives a 100-Continue response.</para><para>When the <see cref="P:System.Net.HttpWebRequest.ContinueDelegate" /> property is set, the client calls the delegate whenever protocol responses of type <see cref="F:System.Net.HttpStatusCode.Continue" /> (100) are received. This is useful if you want the client to display the status of the data being received from the Internet resource.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets the delegate method called when an HTTP 100-continue response is received from the Internet resource.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="ContinueTimeout"><MemberSignature Language="C#" Value="public int ContinueTimeout { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance int32 ContinueTimeout" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.MonoTODO</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Docs><value>To be added.</value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>If the 100-Continue response is received before the timeout expires, the entity body can be sent.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets a timeout, in milliseconds, to wait until the 100-Continue is received from the server. </para></summary></Docs></Member><Member MemberName="CookieContainer"><MemberSignature Language="C#" Value="public virtual System.Net.CookieContainer CookieContainer { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance class System.Net.CookieContainer CookieContainer" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Net.CookieContainer</ReturnType></ReturnValue><Docs><value>To be added.</value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="P:System.Net.HttpWebRequest.CookieContainer" /> property provides an instance of the <see cref="T:System.Net.CookieContainer" /> class that contains the cookies associated with this request.</para><para><see cref="P:System.Net.HttpWebRequest.CookieContainer" /> is null by default. You must assign a <see cref="T:System.Net.CookieContainer" /> object to the property to have cookies returned in the <see cref="P:System.Net.HttpWebResponse.Cookies" /> property of the <see cref="T:System.Net.HttpWebResponse" /> returned by the <see cref="M:System.Net.HttpWebRequest.GetResponse" /> method.</para><block subset="none" type="note"><para>For security reasons, cookies are disabled by default. If you want to use cookies, use the <see cref="P:System.Net.HttpWebRequest.CookieContainer" /> property to enable cookies.</para></block></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets the cookies associated with the request.</para></summary></Docs></Member><Member MemberName="Credentials"><MemberSignature Language="ILASM" Value=".property class System.Net.ICredentials Credentials { public hidebysig virtual specialname class System.Net.ICredentials get_Credentials() public hidebysig virtual specialname void set_Credentials(class System.Net.ICredentials value) }" /><MemberSignature Language="C#" Value="public override System.Net.ICredentials Credentials { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance class System.Net.ICredentials Credentials" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Net.ICredentials</ReturnType></ReturnValue><Parameters /><Docs><value><para> A <see cref="T:System.Net.ICredentials" /> object containing
   the authentication credentials associated with
   the current instance. The default is
<see langword="null" />.</para></value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="P:System.Net.HttpWebRequest.Credentials" /> property contains authentication information to identify the maker of the request. The <see cref="P:System.Net.HttpWebRequest.Credentials" /> property can be either a <see cref="T:System.Net.NetworkCredential" />, in which case the user, password, and domain information contained in the <see cref="T:System.Net.NetworkCredential" /> object is used to authenticate the request, or it can be a <see cref="T:System.Net.CredentialCache" />, in which case the Uniform Resource Identifier (URI) of the request is used to determine the user, password, and domain information to use to authenticate the request.</para><para>In most client scenarios, you should use the <see cref="P:System.Net.CredentialCache.DefaultCredentials" /> property, which contains the credentials of the currently logged on user. To do this, set the <see cref="P:System.Net.WebClient.UseDefaultCredentials" /> property to true instead of setting this property.</para><para>If the <see cref="T:System.Net.HttpWebRequest" /> class is being used in a middle-tier application, such as an ASP.NET application, the credentials in the <see cref="P:System.Net.CredentialCache.DefaultCredentials" /> property belong to the account running the ASP page (the server-side credentials). Typically, you would set this property to the credentials of the client on whose behalf the request is made. </para><block subset="none" type="note"><para>The NTLM authentication scheme cannot be used to impersonate another user. Kerberos must be specially configured to support impersonation.</para></block><para>To restrict HttpWebRequest to one or more authentication methods, use the <see cref="T:System.Net.CredentialCache" /> class and bind your credentials to one or more authentication schemes</para><para>Supported authentication schemes include Digest, Negotiate, Kerberos, NTLM, and Basic.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets authentication information for the request.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="Date"><MemberSignature Language="C#" Value="public DateTime Date { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance valuetype System.DateTime Date" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.DateTime</ReturnType></ReturnValue><Docs><value>To be added.</value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>If the Date header is null, then the return value will be set to <see cref="F:System.DateTime.MinValue" />.</para><para>The <see cref="P:System.Net.HttpWebRequest.Date" /> property is a standard <see cref="T:System.DateTime" /> object and can contain a <see cref="T:System.DateTimeKind" /> field of <see cref="F:System.DateTimeKind.Local" />, <see cref="F:System.DateTimeKind.Utc" />, or <see cref="F:System.DateTimeKind.Unspecified" />. Any kind of time can be set when using the <see cref="P:System.Net.HttpWebRequest.Date" /> property. If <see cref="F:System.DateTimeKind.Unspecified" /> is set or retrieved, the <see cref="P:System.Net.HttpWebRequest.Date" /> property is assumed to be <see cref="F:System.DateTimeKind.Local" /> (local time). </para><para>The classes in the <see cref="N:System.Net" /> namespace always write it out the <see cref="P:System.Net.HttpWebRequest.Date" /> property on the wire during transmission in standard form using GMT (Utc) format.</para><para>If the <see cref="P:System.Net.HttpWebRequest.Date" /> property is set to <see cref="F:System.DateTime.MinValue" />, then the Date HTTP header is removed from the <see cref="P:System.Net.HttpWebRequest.Headers" /> property and the <see cref="T:System.Net.WebHeaderCollection" />.</para><para>If the <see cref="P:System.Net.HttpWebRequest.Date" /> property is <see cref="F:System.DateTime.MinValue" />, this indicates that the Date HTTP header is not included in the <see cref="P:System.Net.HttpWebRequest.Headers" /> property and the <see cref="T:System.Net.WebHeaderCollection" />.</para><block subset="none" type="note"><para>The value for this property is stored in <see cref="T:System.Net.WebHeaderCollection" />. If WebHeaderCollection is set, the property value is lost.</para></block><para>If the <see cref="P:System.Net.HttpWebRequest.Date" /> is set and an attempt is made to send a <see cref="T:System.Net.HttpWebRequest" /> with no body, then a <see cref="T:System.Net.ProtocolViolationException" /> will be thrown by the <see cref="M:System.Net.HttpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object)" />, <see cref="M:System.Net.HttpWebRequest.GetResponse" />, and <see cref="M:System.Net.HttpWebRequest.EndGetResponse(System.IAsyncResult)" /> methods.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Get or set the Date HTTP header value to use in an HTTP request.</para></summary></Docs></Member><Member MemberName="DefaultCachePolicy"><MemberSignature Language="C#" Value="public static System.Net.Cache.RequestCachePolicy DefaultCachePolicy { get; set; }" /><MemberSignature Language="ILAsm" Value=".property class System.Net.Cache.RequestCachePolicy DefaultCachePolicy" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.MonoTODO</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.Net.Cache.RequestCachePolicy</ReturnType></ReturnValue><Docs><value>To be added.</value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>Setting this property registers the specified policy for the HTTP and HTTPS schemes. This policy is used for this request if:</para><para>There is no <see cref="P:System.Net.WebRequest.CachePolicy" /> property specified for this request.</para><para>- or -</para><para>The machine and application configuration files do not specify a cache policy that is applicable to the Uniform Resource Identifier (URI) used to create this request.</para><para>The cache policy determines whether the requested resource can be taken from a cache instead of sending the request to the resource host computer.</para><para>A copy of a resource is only added to the cache if the response stream for the resource is retrieved and read to the end of the stream. So another request for the same resource could use a cached copy, depending on the cache policy level for this request.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets the default cache policy for this request.</para></summary></Docs></Member><Member MemberName="DefaultMaximumErrorResponseLength"><MemberSignature Language="C#" Value="public static int DefaultMaximumErrorResponseLength { get; set; }" /><MemberSignature Language="ILAsm" Value=".property int32 DefaultMaximumErrorResponseLength" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.MonoTODO</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Docs><value>To be added.</value><remarks>To be added.</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets the default maximum length of an HTTP error response.</para></summary></Docs></Member><Member MemberName="DefaultMaximumResponseHeadersLength"><MemberSignature Language="C#" Value="public static int DefaultMaximumResponseHeadersLength { get; set; }" /><MemberSignature Language="ILAsm" Value=".property int32 DefaultMaximumResponseHeadersLength" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.MonoTODO("Use this")</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Docs><value>To be added.</value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The length of the response header received the response status line and any extra control characters that are received as part of HTTP protocol. A value of -1 means no limit is imposed on the response headers received; a value of 0 means that all requests fail.</para><para>This value can also be changed in the configuration file. The impact of this property can be overridden by setting the <see cref="P:System.Net.HttpWebRequest.MaximumResponseHeadersLength" /> property on an instance of the <see cref="T:System.Net.HttpWebRequest" /> class. </para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets the default for the <see cref="P:System.Net.HttpWebRequest.MaximumResponseHeadersLength" /> property.</para></summary></Docs></Member><Member MemberName="EndGetRequestStream"><MemberSignature Language="ILASM" Value=".method public hidebysig virtual class System.IO.Stream EndGetRequestStream(class System.IAsyncResult asyncResult)" /><MemberSignature Language="C#" Value="public override System.IO.Stream EndGetRequestStream (IAsyncResult asyncResult);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance class System.IO.Stream EndGetRequestStream(class System.IAsyncResult asyncResult) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.IO.Stream</ReturnType></ReturnValue><Parameters><Parameter Name="asyncResult" Type="System.IAsyncResult" /></Parameters><Docs><exception cref="T:System.ArgumentNullException"><paramref name="asyncResult " />is <see langword="null" />.</exception><exception cref="T:System.ArgumentException"><paramref name="asyncResult" /> was not returned by the current instance from a call to <see cref="M:System.Net.WebRequest.BeginGetRequestStream(System.AsyncCallback,System.Object)" />.</exception><exception cref="T:System.InvalidOperationException"><para> This method was called previously using <paramref name="asyncResult." /></para><para>-or-</para><para>No stream is available.</para></exception><exception cref="T:System.Net.WebException"><para><see cref="M:System.Net.HttpWebRequest.Abort" /> was previously called.</para><para>-or-</para><para>An error occurred while processing the request.</para></exception><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="M:System.Net.HttpWebRequest.EndGetRequestStream(System.IAsyncResult)" /> method completes an asynchronous request for a stream that was started by the <see cref="M:System.Net.HttpWebRequest.BeginGetRequestStream(System.AsyncCallback,System.Object)" /> method. After the <see cref="T:System.IO.Stream" /> object has been returned, you can send data with the <see cref="T:System.Net.HttpWebRequest" /> by using the <see cref="M:System.IO.Stream.Write(System.Byte[],System.Int32,System.Int32)" /> method.</para><block subset="none" type="note"><para>You must set the value of the <see cref="P:System.Net.HttpWebRequest.ContentLength" /> property before writing data to the stream.</para></block><block subset="none" type="note"><para>You must call the <see cref="M:System.IO.Stream.Close" /> method to close the stream and release the connection for reuse. Failure to close the stream causes your application to run out of connections.</para></block><block subset="none" type="note"><para>This member outputs trace information when you enable network tracing in your application. For more information, see <format type="text/html"><a href="E993B7C3-087F-45D8-9C02-9DDED936D804">[&lt;topic://conUsingNetworkTracing&gt;]</a></format>.</para></block></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Ends an asynchronous request for a <see cref="T:System.IO.Stream" /> object to use to write data.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>A <see cref="T:System.IO.Stream" /> to use to write request data.</para></returns><param name="asyncResult"><attribution license="cc4" from="Microsoft" modified="false" />The pending request for a stream. </param></Docs><Excluded>0</Excluded></Member><Member MemberName="EndGetRequestStream"><MemberSignature Language="C#" Value="public System.IO.Stream EndGetRequestStream (IAsyncResult asyncResult, out System.Net.TransportContext transportContext);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.IO.Stream EndGetRequestStream(class System.IAsyncResult asyncResult, class System.Net.TransportContext transportContext) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.IO.Stream</ReturnType></ReturnValue><Parameters><Parameter Name="asyncResult" Type="System.IAsyncResult" /><Parameter Name="transportContext" Type="System.Net.TransportContext&amp;" RefType="out" /></Parameters><Docs><param name="asyncResult">To be added.</param><param name="transportContext">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs></Member><Member MemberName="EndGetResponse"><MemberSignature Language="ILASM" Value=".method public hidebysig virtual class System.Net.WebResponse EndGetResponse(class System.IAsyncResult asyncResult)" /><MemberSignature Language="C#" Value="public override System.Net.WebResponse EndGetResponse (IAsyncResult asyncResult);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance class System.Net.WebResponse EndGetResponse(class System.IAsyncResult asyncResult) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Net.WebResponse</ReturnType></ReturnValue><Parameters><Parameter Name="asyncResult" Type="System.IAsyncResult" /></Parameters><Docs><exception cref="T:System.ArgumentNullException"><paramref name="asyncResult " />is <see langword="null" />.</exception><exception cref="T:System.ArgumentException"><paramref name="asyncResult" /> was not returned by the current instance from a call to <see cref="M:System.Net.WebRequest.BeginGetResponse(System.AsyncCallback,System.Object)" />.</exception><exception cref="T:System.InvalidOperationException"><para> This method was called previously using <paramref name="asyncResult." /></para><para>-or-</para><para>The <see cref="P:System.Net.HttpWebRequest.ContentLength" /> property of the current instance is greater than 0 but the data has not been written to the request stream.</para></exception><exception cref="T:System.Net.WebException"><para><see cref="M:System.Net.HttpWebRequest.Abort" /> was previously called.</para><para>-or-</para><para>An error occurred while processing the request.</para></exception><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="M:System.Net.HttpWebRequest.EndGetResponse(System.IAsyncResult)" /> method completes an asynchronous request for an Internet resource that was started by calling the <see cref="M:System.Net.HttpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object)" /> method.</para><block subset="none" type="note"><para>You must call the <see cref="M:System.Net.HttpWebResponse.Close" /> method to close the stream and release the connection. Failure to do so may cause your application to run out of connections.</para></block><block subset="none" type="note"><para>This member outputs trace information when you enable network tracing in your application. For more information, see <format type="text/html"><a href="E993B7C3-087F-45D8-9C02-9DDED936D804">[&lt;topic://conUsingNetworkTracing&gt;]</a></format>.</para></block></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Ends an asynchronous request to an Internet resource.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>A <see cref="T:System.Net.WebResponse" /> that contains the response from the Internet resource.</para></returns><param name="asyncResult"><attribution license="cc4" from="Microsoft" modified="false" />The pending request for a response. </param></Docs><Excluded>0</Excluded></Member><Member MemberName="Expect"><MemberSignature Language="ILASM" Value=".property string Expect { public hidebysig specialname instance string get_Expect() public hidebysig specialname instance void set_Expect(string value) }" /><MemberSignature Language="C#" Value="public string Expect { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance string Expect" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.String</ReturnType></ReturnValue><Parameters /><Docs><value><para> A <see cref="T:System.String" /> that contains the
   contents of the HTTP Expect header. The default value is
<see langword="null" /> . </para></value><remarks><block subset="none" type="note"><para>By default, <see cref="P:System.Net.HttpWebRequest.Expect" /> is <see langword="null" /> . Other values can be added to the
      list that <see cref="P:System.Net.HttpWebRequest.Expect" /> maintains, or all values except "100-continue" can be
      deleted from the list by setting <see cref="P:System.Net.HttpWebRequest.Expect" /> to <see langword="null" /> .</para><para>For additional information see section 14.20 of IETF RFC
      2616 - HTTP/1.1.</para></block></remarks><exception cref="T:System.ArgumentException">The value specified for a set operation is "100-continue". This value is case insensitive.</exception><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets the value of the Expect HTTP header.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="GetHashCode"><MemberSignature Language="ILASM" Value=".method public hidebysig virtual int32 GetHashCode()" /><MemberSignature Language="C#" Value="public override int GetHashCode ();" /><MemberType>Method</MemberType><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Parameters /><Docs><summary><para>Generates a hash code for the current instance.</para></summary><returns><para>A <see cref="T:System.Int32" /> containing the hash code for the current instance.</para></returns><remarks><para>The algorithm used to 
 generate the hash code is unspecified.</para><para><block subset="none" type="note">This method overrides <see cref="M:System.Object.GetHashCode" qualify="true" />.</block></para></remarks></Docs><Excluded>0</Excluded><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion></AssemblyInfo></Member><Member MemberName="GetObjectData"><MemberSignature Language="C#" Value="protected override void GetObjectData (System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext);" /><MemberSignature Language="ILAsm" Value=".method familyhidebysig virtual instance void GetObjectData(class System.Runtime.Serialization.SerializationInfo serializationInfo, valuetype System.Runtime.Serialization.StreamingContext streamingContext) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="serializationInfo" Type="System.Runtime.Serialization.SerializationInfo" /><Parameter Name="streamingContext" Type="System.Runtime.Serialization.StreamingContext" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>Any objects included in the <see cref="T:System.Runtime.Serialization.SerializationInfo" /> are automatically tracked and serialized by the formatter.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Populates a <see cref="T:System.Runtime.Serialization.SerializationInfo" /> with the data required to serialize the target object.</para></summary><param name="serializationInfo"><attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Runtime.Serialization.SerializationInfo" /> to populate with data. </param><param name="streamingContext"><attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Runtime.Serialization.StreamingContext" /> that specifies the destination for this serialization.</param></Docs></Member><Member MemberName="GetRequestStream"><MemberSignature Language="ILASM" Value=".method public hidebysig virtual class System.IO.Stream GetRequestStream()" /><MemberSignature Language="C#" Value="public override System.IO.Stream GetRequestStream ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance class System.IO.Stream GetRequestStream() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.IO.Stream</ReturnType></ReturnValue><Parameters /><Docs><exception cref="T:System.Net.ProtocolViolationException"><para>The <see cref="P:System.Net.HttpWebRequest.Method" /> property of the current instance is "GET" or "HEAD". </para><para> -or- </para><para>The <see cref="P:System.Net.HttpWebRequest.ContentLength" /> property of the current instance is not set. </para></exception><exception cref="T:System.InvalidOperationException"><para>The <see cref="M:System.Net.HttpWebRequest.GetRequestStream" /> method was called more than once.</para><para>-or-</para><para>No writeable stream is available.</para></exception><exception cref="T:System.Net.WebException"><para><see cref="M:System.Net.HttpWebRequest.Abort" /> was previously called.</para><para>-or-</para><para>The timeout period for the request expired.</para><para>-or-</para><para>An error occurred while processing the request.</para></exception><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="M:System.Net.HttpWebRequest.GetRequestStream" /> method returns a stream to use to send data for the <see cref="T:System.Net.HttpWebRequest" />. After the <see cref="T:System.IO.Stream" /> object has been returned, you can send data with the <see cref="T:System.Net.HttpWebRequest" /> by using the <see cref="M:System.IO.Stream.Write(System.Byte[],System.Int32,System.Int32)" /> method.</para><para>If an application needs to set the value of the <see cref="P:System.Net.HttpWebRequest.ContentLength" /> property, then this must be done before retrieving the stream.</para><para>You must call the <see cref="M:System.IO.Stream.Close" /> method to close the stream and release the connection for reuse. Failure to close the stream causes your application to run out of connections.</para><block subset="none" type="note"><para>Your application cannot mix synchronous and asynchronous methods for a particular request. If you call the <see cref="M:System.Net.HttpWebRequest.GetRequestStream" /> method, you must use the <see cref="M:System.Net.HttpWebRequest.GetResponse" /> method to retrieve the response.</para></block><block subset="none" type="note"><para>This member outputs trace information when you enable network tracing in your application. For more information, see <format type="text/html"><a href="E993B7C3-087F-45D8-9C02-9DDED936D804">[&lt;topic://conUsingNetworkTracing&gt;]</a></format>.</para></block></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets a <see cref="T:System.IO.Stream" /> object to use to write request data.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>A <see cref="T:System.IO.Stream" /> to use to write request data.</para></returns></Docs><Excluded>0</Excluded></Member><Member MemberName="GetResponse"><MemberSignature Language="ILASM" Value=".method public hidebysig virtual class System.Net.WebResponse GetResponse()" /><MemberSignature Language="C#" Value="public override System.Net.WebResponse GetResponse ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance class System.Net.WebResponse GetResponse() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Net.WebResponse</ReturnType></ReturnValue><Parameters /><Docs><exception cref="T:System.Net.ProtocolViolationException">The <see cref="P:System.Net.HttpWebRequest.ContentLength" /> property of the current instance is not set. </exception><exception cref="T:System.Net.WebException"><para><see cref="M:System.Net.HttpWebRequest.Abort" /> was previously called.</para><para>-or-</para><para>The timeout period for the request expired.</para><para>-or-</para><para>An error occurred while processing the request.</para></exception><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="M:System.Net.HttpWebRequest.GetResponse" /> method returns a <see cref="T:System.Net.WebResponse" /> object that contains the response from the Internet resource. The actual instance returned is an <see cref="T:System.Net.HttpWebResponse" />, and can be typecast to that class to access HTTP-specific properties.</para><para>A <see cref="T:System.Net.ProtocolViolationException" /> is thrown in several cases when the properties set on the <see cref="T:System.Net.HttpWebRequest" /> class are conflicting. This exception occurs if an application sets the <see cref="P:System.Net.HttpWebRequest.ContentLength" /> property and the <see cref="P:System.Net.HttpWebRequest.SendChunked" /> property to true, and then sends an HTTP GET request. This exception occurs if an application tries to send chunked to a server that only supports HTTP 1.0 protocol, where this is not supported. This exception occurs if an application tries to send data without setting the <see cref="P:System.Net.HttpWebRequest.ContentLength" /> property or the <see cref="P:System.Net.HttpWebRequest.SendChunked" /> is false when buffering is disabled and on a keepalive connection (the <see cref="P:System.Net.HttpWebRequest.KeepAlive" /> property is true).</para><block subset="none" type="note"><para>You must call the <see cref="M:System.Net.HttpWebResponse.Close" /> method to close the stream and release the connection. Failure to do so may cause your application to run out of connections.</para></block><para>When using the POST method, you must get the request stream, write the data to be posted, and close the stream. This method blocks waiting for content to post; if there is no time-out set and you do not provide content, the calling thread blocks indefinitely.</para><block subset="none" type="note"><para>Multiple calls to <see cref="M:System.Net.HttpWebRequest.GetResponse" /> return the same response object; the request is not reissued.</para></block><block subset="none" type="note"><para>Your application cannot mix synchronous and asynchronous methods for a particular request. If you call the <see cref="M:System.Net.HttpWebRequest.GetRequestStream" /> method, you must use the <see cref="M:System.Net.HttpWebRequest.GetResponse" /> method to retrieve the response. </para></block><block subset="none" type="note"><para>If a <see cref="T:System.Net.WebException" /> is thrown, use the <see cref="P:System.Net.WebException.Response" /> and <see cref="P:System.Net.WebException.Status" /> properties of the exception to determine the response from the server.</para></block><block subset="none" type="note"><para>This member outputs trace information when you enable network tracing in your application. For more information, see <format type="text/html"><a href="E993B7C3-087F-45D8-9C02-9DDED936D804">[&lt;topic://conUsingNetworkTracing&gt;]</a></format>.</para></block><block subset="none" type="note"><para>For security reasons, cookies are disabled by default. If you wish to use cookies, use the <see cref="P:System.Net.HttpWebRequest.CookieContainer" /> property to enable cookies.</para></block></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Returns a response from an Internet resource.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>A <see cref="T:System.Net.WebResponse" /> that contains the response from the Internet resource.</para></returns></Docs><Excluded>0</Excluded></Member><Member MemberName="HaveResponse"><MemberSignature Language="ILASM" Value=".property bool HaveResponse { public hidebysig specialname instance bool get_HaveResponse() }" /><MemberSignature Language="C#" Value="public virtual bool HaveResponse { get; }" /><MemberSignature Language="ILAsm" Value=".property instance bool HaveResponse" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters /><Docs><value><para><see langword="true" /> if a response has been received; otherwise
<see langword="false" />.</para></value><remarks><para>This property is read-only.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets a value that indicates whether a response has been received from an Internet resource.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="Headers"><MemberSignature Language="ILASM" Value=".property class System.Net.WebHeaderCollection Headers { public hidebysig virtual specialname class System.Net.WebHeaderCollection get_Headers() public hidebysig virtual specialname void set_Headers(class System.Net.WebHeaderCollection value) }" /><MemberSignature Language="C#" Value="public override System.Net.WebHeaderCollection Headers { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance class System.Net.WebHeaderCollection Headers" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Net.WebHeaderCollection</ReturnType></ReturnValue><Parameters /><Docs><value><para>A <see cref="T:System.Net.WebHeaderCollection" /> containing the name/value pairs of the headers for
   the current instance.</para></value><exception cref="T:System.InvalidOperationException">A set operation was requested but data has already been written to the request data stream.</exception><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="P:System.Net.HttpWebRequest.Headers" /> collection contains the protocol headers associated with the request. The following table lists the HTTP headers that are not stored in the <see cref="P:System.Net.HttpWebRequest.Headers" /> collection but are either set by the system or set by properties or methods.</para><list type="table"><listheader><item><term><para>Header </para></term><description><para>Set by </para></description></item></listheader><item><term><para>Accept </para></term><description><para>Set by the <see cref="P:System.Net.HttpWebRequest.Accept" /> property. </para></description></item><item><term><para>Connection </para></term><description><para>Set by the <see cref="P:System.Net.HttpWebRequest.Connection" /> property and <see cref="P:System.Net.HttpWebRequest.KeepAlive" /> property. </para></description></item><item><term><para>Content-Length </para></term><description><para>Set by the <see cref="P:System.Net.HttpWebRequest.ContentLength" /> property. </para></description></item><item><term><para>Content-Type </para></term><description><para>Set by the <see cref="P:System.Net.HttpWebRequest.ContentType" /> property. </para></description></item><item><term><para>Expect </para></term><description><para>Set by the <see cref="P:System.Net.HttpWebRequest.Expect" /> property. </para></description></item><item><term><para>Date </para></term><description><para>Set by the <see cref="P:System.Net.HttpWebRequest.Date" /> property. </para></description></item><item><term><para>Host </para></term><description><para>Set by the <see cref="P:System.Net.HttpWebRequest.Host" /> property. </para></description></item><item><term><para>If-Modified-Since </para></term><description><para>Set by the <see cref="P:System.Net.HttpWebRequest.IfModifiedSince" /> property. </para></description></item><item><term><para>Range </para></term><description><para>Set by the <see cref="M:System.Net.HttpWebRequest.AddRange(System.Int32,System.Int32)" /> method. </para></description></item><item><term><para>Referer </para></term><description><para>Set by the <see cref="P:System.Net.HttpWebRequest.Referer" /> property. </para></description></item><item><term><para>Transfer-Encoding </para></term><description><para>Set by the <see cref="P:System.Net.HttpWebRequest.TransferEncoding" /> property (the <see cref="P:System.Net.HttpWebRequest.SendChunked" /> property must be true). </para></description></item><item><term><para>User-Agent </para></term><description><para>Set by the <see cref="P:System.Net.HttpWebRequest.UserAgent" /> property. </para></description></item></list><para>The <see cref="M:System.Net.WebHeaderCollection.Add(System.Net.HttpRequestHeader,System.String)" /> method throws an <see cref="T:System.ArgumentException" /> if you try to set one of these protected headers.</para><para>Changing the <see cref="P:System.Net.HttpWebRequest.Headers" /> property after the request has been started by calling <see cref="M:System.Net.HttpWebRequest.GetRequestStream" />, <see cref="M:System.Net.HttpWebRequest.BeginGetRequestStream(System.AsyncCallback,System.Object)" />, <see cref="M:System.Net.HttpWebRequest.GetResponse" />, or <see cref="M:System.Net.HttpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object)" /> method throws an <see cref="T:System.InvalidOperationException" />.</para><para>You should not assume that the header values will remain unchanged, because Web servers and caches may change or add headers to a Web request.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Specifies a collection of the name/value pairs that make up the HTTP headers.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="Host"><MemberSignature Language="C#" Value="public string Host { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance string Host" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.String</ReturnType></ReturnValue><Docs><value>To be added.</value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="P:System.Net.HttpWebRequest.Host" /> property can be used to set the Host header value to use in an HTTP request independent from the request URI. The <see cref="P:System.Net.HttpWebRequest.Host" /> property can consist of a hostname and an optional port number. A Host header without port information implies the default port for the service requested (port 80 for an HTTP URL, for example).</para><para>The format for specifying a host and port must follow the rules in section 14.23 of RFC2616 published by the IETF. An example complying with these requirements that specifies a port of 8080 would be the following value for the <see cref="P:System.Net.HttpWebRequest.Host" /> property:</para><para>www.contoso.com:8080</para><para>Using the <see cref="P:System.Net.HttpWebRequest.Host" /> property to explicitly specify a custom Host header value also affects areas caching, cookies, and authentication. When an application provides credentials for a specific URI prefix, the applications needs to make sure to use the URI containing the value of the Host header, not the target server in the URI. The key used when caching resources, uses the Host header value rather than the request URI. Cookies are stored in a <see cref="T:System.Net.CookieContainer" /> and logically grouped by the server domain name. If the application specifies a Host header, then this value will be used as domain.</para><para>If the <see cref="P:System.Net.HttpWebRequest.Host" /> property is not set, then the Host header value to use in an HTTP request is based on the request URI.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Get or set the Host header value to use in an HTTP request independent from the request URI.</para></summary></Docs></Member><Member MemberName="IfModifiedSince"><MemberSignature Language="ILASM" Value=".property valuetype System.DateTime IfModifiedSince { public hidebysig specialname instance valuetype System.DateTime get_IfModifiedSince() public hidebysig specialname instance void set_IfModifiedSince(valuetype System.DateTime value) }" /><MemberSignature Language="C#" Value="public DateTime IfModifiedSince { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance valuetype System.DateTime IfModifiedSince" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.DateTime</ReturnType></ReturnValue><Parameters /><Docs><value><para>A <see cref="T:System.DateTime" /> that contains the 
   contents of the HTTP If-Modified-Since
   header. The default value is the current
   date and time of the system.</para></value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="P:System.Net.HttpWebRequest.IfModifiedSince" /> property is a standard <see cref="T:System.DateTime" /> object and can contain a <see cref="T:System.DateTimeKind" /> field of <see cref="F:System.DateTimeKind.Local" />, <see cref="F:System.DateTimeKind.Utc" />, or <see cref="F:System.DateTimeKind.Unspecified" />. Any kind of time can be set when using the <see cref="P:System.Net.HttpWebRequest.IfModifiedSince" /> property. If <see cref="F:System.DateTimeKind.Unspecified" /> is set or retrieved, the <see cref="P:System.Net.HttpWebRequest.IfModifiedSince" /> property is assumed to be <see cref="F:System.DateTimeKind.Local" /> (local time). </para><para>The classes in the <see cref="N:System.Net" /> namespace always write it out the <see cref="P:System.Net.HttpWebRequest.IfModifiedSince" /> property on the wire during transmission in standard form using GMT (Utc) format.</para><para>If the <see cref="P:System.Net.HttpWebRequest.IfModifiedSince" /> property is set to <see cref="F:System.DateTime.MinValue" />, then the If-Modified-Since HTTP header is removed from the <see cref="P:System.Net.HttpWebRequest.Headers" /> property and the <see cref="T:System.Net.WebHeaderCollection" />.</para><para>If the <see cref="P:System.Net.HttpWebRequest.IfModifiedSince" /> property is <see cref="F:System.DateTime.MinValue" />, this indicates that the If-Modified-Since HTTP header is not included in the <see cref="P:System.Net.HttpWebRequest.Headers" /> property and the <see cref="T:System.Net.WebHeaderCollection" />.</para><block subset="none" type="note"><para>The value for this property is stored in <see cref="T:System.Net.WebHeaderCollection" />. If WebHeaderCollection is set, the property value is lost.</para></block></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets the value of the If-Modified-Since HTTP header.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="KeepAlive"><MemberSignature Language="ILASM" Value=".property bool KeepAlive { public hidebysig specialname instance bool get_KeepAlive() public hidebysig specialname instance void set_KeepAlive(bool value) }" /><MemberSignature Language="C#" Value="public bool KeepAlive { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance bool KeepAlive" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters /><Docs><value><para><see langword="true " />indicates
   that the current request will contain an HTTP Connection header with the value
   "Keep-alive"
   ; otherwise, <see langword="false" />. The default
   value is <see langword="true" />.</para></value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>Set this property to true to send a Connection HTTP header with the value Keep-alive. An application uses <see cref="P:System.Net.HttpWebRequest.KeepAlive" /> to indicate a preference for persistent connections. When the <see cref="P:System.Net.HttpWebRequest.KeepAlive" /> property is true, the application makes persistent connections to the servers that support them.</para><block subset="none" type="note"><para>When using HTTP/1.1, Keep-Alive is on by default. Setting <see cref="P:System.Net.HttpWebRequest.KeepAlive" /> to false may result in sending a Connection: Close header to the server.</para></block></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets a value that indicates whether to make a persistent connection to the Internet resource.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="MaximumAutomaticRedirections"><MemberSignature Language="ILASM" Value=".property int32 MaximumAutomaticRedirections { public hidebysig specialname instance int32 get_MaximumAutomaticRedirections() public hidebysig specialname instance void set_MaximumAutomaticRedirections(int32 value) }" /><MemberSignature Language="C#" Value="public int MaximumAutomaticRedirections { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance int32 MaximumAutomaticRedirections" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Parameters /><Docs><value><para>A <see cref="T:System.Int32" /> value that
   indicates the maximum number of redirection responses that the current instance will follow. The
   default value is implementation-specific.</para></value><exception cref="T:System.ArgumentException">The value specified for a set operation is less than or equal to zero.</exception><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="P:System.Net.HttpWebRequest.MaximumAutomaticRedirections" /> property sets the maximum number of redirections for the request to follow if the <see cref="P:System.Net.HttpWebRequest.AllowAutoRedirect" /> property is true.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets the maximum number of redirects that the request follows.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="MaximumResponseHeadersLength"><MemberSignature Language="C#" Value="public int MaximumResponseHeadersLength { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance int32 MaximumResponseHeadersLength" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.MonoTODO("Use this")</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Docs><value>To be added.</value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The length of the response header includes the response status line and any extra control characters that are received as part of HTTP protocol. A value of -1 means no limit is imposed on the response headers; a value of 0 means that all requests fail.</para><para>If the <see cref="P:System.Net.HttpWebRequest.MaximumResponseHeadersLength" /> property is not explicitly set, it defaults to the value of the <see cref="P:System.Net.HttpWebRequest.DefaultMaximumResponseHeadersLength" /> property. </para><para>If the length of the response header received exceeds the value of the <see cref="P:System.Net.HttpWebRequest.MaximumResponseHeadersLength" /> property, the <see cref="M:System.Net.HttpWebRequest.EndGetResponse(System.IAsyncResult)" /> or <see cref="M:System.Net.HttpWebRequest.GetResponse" /> methods will throw a <see cref="T:System.Net.WebException" /> with the <see cref="P:System.Net.WebException.Status" /> property set to <see cref="F:System.Net.WebExceptionStatus.MessageLengthLimitExceeded" />.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets the maximum allowed length of the response headers.</para></summary></Docs></Member><Member MemberName="MediaType"><MemberSignature Language="ILASM" Value=".property string MediaType { public hidebysig specialname instance string get_MediaType() public hidebysig specialname instance void set_MediaType(string value) }" /><MemberSignature Language="C#" Value="public string MediaType { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance string MediaType" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.String</ReturnType></ReturnValue><Parameters /><Docs><value><para>A <see cref="T:System.String" /> that identifies the media type of the current request. The default value is
<see langword="null" />.</para></value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The value of the <see cref="P:System.Net.HttpWebRequest.MediaType" /> property affects the <see cref="P:System.Net.HttpWebResponse.CharacterSet" /> property. When you set the <see cref="P:System.Net.HttpWebRequest.MediaType" /> in the request, the corresponding media type is chosen from the list of character sets returned in the response Content-type HTTP header.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets the media type of the request.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="Method"><MemberSignature Language="ILASM" Value=".property string Method { public hidebysig virtual specialname string get_Method() public hidebysig virtual specialname void set_Method(string value) }" /><MemberSignature Language="C#" Value="public override string Method { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance string Method" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.String</ReturnType></ReturnValue><Parameters /><Docs><value><para>A <see cref="T:System.String" /> containing an HTTP method. The default value
   is "GET".</para></value><exception cref="T:System.ArgumentException"><see langword="null" />, <see cref="F:System.String.Empty" />, or an invalid value was specified for a set operation.</exception><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="P:System.Net.HttpWebRequest.Method" /> property can be set to any of the HTTP 1.1 protocol verbs: GET, HEAD, POST, PUT, DELETE, TRACE, or OPTIONS.</para><para>If the <see cref="P:System.Net.HttpWebRequest.ContentLength" /> property is set to any value other than -1, the <see cref="P:System.Net.HttpWebRequest.Method" /> property must be set to a protocol property that uploads data.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets the method for the request.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="Pipelined"><MemberSignature Language="ILASM" Value=".property bool Pipelined { public hidebysig specialname instance bool get_Pipelined() public hidebysig specialname instance void set_Pipelined(bool value) }" /><MemberSignature Language="C#" Value="public bool Pipelined { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance bool Pipelined" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters /><Docs><value><para><see langword="true " />if the current request can be pipelined; otherwise,
<see langword="false" />. The default is <see langword="true" />.</para></value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>An application uses the <see cref="P:System.Net.HttpWebRequest.Pipelined" /> property to indicate a preference for pipelined connections. When <see cref="P:System.Net.HttpWebRequest.Pipelined" /> is true, an application makes pipelined connections to the servers that support them.</para><para>Pipelined connections are made only when the <see cref="P:System.Net.HttpWebRequest.KeepAlive" /> property is also true.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets a value that indicates whether to pipeline the request to the Internet resource.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="PreAuthenticate"><MemberSignature Language="ILASM" Value=".property bool PreAuthenticate { public hidebysig virtual specialname bool get_PreAuthenticate() public hidebysig virtual specialname void set_PreAuthenticate(bool value) }" /><MemberSignature Language="C#" Value="public override bool PreAuthenticate { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance bool PreAuthenticate" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters /><Docs><value><para><see langword="true " />to send a HTTP
WWW-authenticate header with the current 
   instance without waiting for an authentication challenge from the requested
   resource; otherwise, <see langword="false" />. The default is
<see langword="false" />.</para></value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>After a client request to a specific <see cref="T:System.Uri" /> is successfully authenticated, if <see cref="P:System.Net.HttpWebRequest.PreAuthenticate" /> is true and credentials are supplied, the Authorization header is sent with each request to any <see cref="T:System.Uri" /> that matches the specific <see cref="T:System.Uri" /> up to the last forward slash. So if the client request successfully authenticated to a specific <see cref="T:System.Uri" /> that contains the following:</para><para>http://www.contoso.com/firstpath/</para><para>Then the Authorization header for preauthentication is sent with each request to any of the following <see cref="T:System.Uri" /> instances:</para><para>http://www.contoso.com/firstpath/</para><para>http://www.contoso.com/firstpath/default</para><para>http://www.contoso.com/firstpath/default.html</para><para>http://www.contoso.com/firstpath/sample.html</para><para>However, the Authorization header is not sent with requests to any of the following <see cref="T:System.Uri" /> instances:</para><para>http://www.contoso.com/</para><para>http://www.contoso.com/firstpath</para><para>http://www.contoso.com/secondpath/</para><para>If the client request to a specific <see cref="T:System.Uri" /> is not successfully authenticated, the request uses standard authentication procedures. </para><para>With the exception of the first request, the <see cref="P:System.Net.WebRequest.PreAuthenticate" /> property indicates whether to send authentication information with subsequent requests to a <see cref="T:System.Uri" /> that matches the specific <see cref="T:System.Uri" /> up to the last forward slash without waiting to be challenged by the server.</para><para>The following dialog between client and server illustrates the effect of this property. The dialog assumes that basic authentication is in use.</para><para><see cref="P:System.Net.HttpWebRequest.PreAuthenticate" /> is false: </para><para>Client: GET someUrl </para><para>Server: 401 WWW-Authenticate Basic </para><para>Client: GET with Authorization headers </para><para>Server: 200 OK </para><para>Client: GET someUrl </para><para>Server: 401 WWW-Authenticate Basic </para><para>Client: GET with Authorization headers </para><para>Server: 200 OK </para><para><see cref="P:System.Net.HttpWebRequest.PreAuthenticate" /> is true: </para><para>Client: GET someUrl </para><para>Server: 401 WWW-Authenticate Basic </para><para>Client: GET with Authorization headers </para><para>Server: 200 OK </para><para>Client: GET someUrl with Authorization headers </para><para>If the authentication scheme does not support preauthentication, the value of this property is ignored.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets a value that indicates whether to send an Authorization header with the request.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="ProtocolVersion"><MemberSignature Language="ILASM" Value=".property class System.Version ProtocolVersion { public hidebysig specialname instance class System.Version get_ProtocolVersion() public hidebysig specialname instance void set_ProtocolVersion(class System.Version value) }" /><MemberSignature Language="C#" Value="public Version ProtocolVersion { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance class System.Version ProtocolVersion" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Version</ReturnType></ReturnValue><Parameters /><Docs><value><para> A <see cref="T:System.Version" /> that represents
   the HTTP version to use for the request. The default is <see cref="F:System.Net.HttpVersion.Version11" qualify="true" />.</para></value><exception cref="T:System.ArgumentException">The HTTP version is set to a value other than 1.0 or 1.1.</exception><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="T:System.Net.HttpWebRequest" /> class supports only versions 1.0 and 1.1 of HTTP. Setting <see cref="P:System.Net.HttpWebRequest.ProtocolVersion" /> to a different version throws an exception.</para><block subset="none" type="note"><para>To set the HTTP version of the current request, use the <see cref="F:System.Net.HttpVersion.Version10" /> and <see cref="F:System.Net.HttpVersion.Version11" /> fields of the <see cref="T:System.Net.HttpVersion" /> class.</para></block></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets the version of HTTP to use for the request.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="Proxy"><MemberSignature Language="ILASM" Value=".property class System.Net.IWebProxy Proxy { public hidebysig virtual specialname class System.Net.IWebProxy get_Proxy() public hidebysig virtual specialname void set_Proxy(class System.Net.IWebProxy value) }" /><MemberSignature Language="C#" Value="public override System.Net.IWebProxy Proxy { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance class System.Net.IWebProxy Proxy" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Net.IWebProxy</ReturnType></ReturnValue><Parameters /><Docs><value><para>The <see cref="T:System.Net.WebProxy" /> instance to
   use as a
   proxy for the current instance. The default value is set by calling <see cref="P:System.Net.GlobalProxySelection.Select" qualify="true" /> . </para></value><exception cref="T:System.ArgumentNullException">A set operation was requested and the specified value was <see langword="null" />.</exception><exception cref="T:System.InvalidOperationException">A set operation was requested but data has already been sent to the request stream.</exception><exception cref="T:System.Security.SecurityException">The caller does not have permission for the requested operation.</exception><permission cref="!:System.Security.Permissions.WebPermission">Requires unrestricted <see cref="T:System.Net.WebPermission" />. See <see cref="F:System.Security.Permissions.PermissionState.Unrestricted" />.</permission><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="P:System.Net.HttpWebRequest.Proxy" /> property identifies the <see cref="T:System.Net.WebProxy" /> object to use to process requests to Internet resources. To specify that no proxy should be used, set the <see cref="P:System.Net.HttpWebRequest.Proxy" /> property to the proxy instance returned by the <see cref="M:System.Net.GlobalProxySelection.GetEmptyWebProxy" /> method.</para><para>The local computer or application config file may specify that a default proxy be used. If the <see cref="P:System.Net.HttpWebRequest.Proxy" /> property is specified, then the proxy settings from the <see cref="P:System.Net.HttpWebRequest.Proxy" /> property override the local computer or application config file and the <see cref="T:System.Net.HttpWebRequest" /> instance will use the proxy settings specified. If no proxy is specified in a config file and the <see cref="P:System.Net.HttpWebRequest.Proxy" /> property is unspecified, the <see cref="T:System.Net.HttpWebRequest" /> class uses the proxy settings inherited from Internet Explorer on the local computer. If there are no proxy settings in Internet Explorer, the request is sent directly to the server.</para><para>The <see cref="T:System.Net.HttpWebRequest" /> class parses a proxy bypass list with wildcard characters inherited from Internet Explorer the same as the bypass list is parsed directly by Internet Explorer. For example, the <see cref="T:System.Net.HttpWebRequest" /> class will parse a bypass list of "nt*" from Internet Explorer as a regular expression of "nt.*". So a URL of "http://nt.com" would bypass the proxy using the <see cref="T:System.Net.HttpWebRequest" /> class and using Internet Explorer.</para><para>The <see cref="T:System.Net.HttpWebRequest" /> class supports local proxy bypass. The class considers a destination to be local if any of the following conditions are met:</para><list type="bullet"><item><para>The destination contains a flat name (no dots in the URL).</para></item><item><para>The destination contains a loopback address (<see cref="F:System.Net.IPAddress.Loopback" />  or <see cref="F:System.Net.IPAddress.IPv6Loopback" />) or the destination contains an <see cref="T:System.Net.IPAddress" /> assigned to the local computer.</para></item><item><para>The domain suffix of the destination matches the local computer's domain suffix (<see cref="P:System.Net.NetworkInformation.IPGlobalProperties.DomainName" />).</para></item></list><para>Changing the <see cref="P:System.Net.HttpWebRequest.Proxy" /> property after the request has been started by calling the <see cref="M:System.Net.HttpWebRequest.GetRequestStream" />, <see cref="M:System.Net.HttpWebRequest.BeginGetRequestStream(System.AsyncCallback,System.Object)" />, <see cref="M:System.Net.HttpWebRequest.GetResponse" />, or <see cref="M:System.Net.HttpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object)" /> method throws an <see cref="T:System.InvalidOperationException" />. For information on the proxy element see <format type="text/html"><a href="9d663c4b-07b4-4f6f-9b12-efbd3630354f">DefaultProxy Element (Network Settings)</a></format>. </para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets proxy information for the request.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="ReadWriteTimeout"><MemberSignature Language="C#" Value="public int ReadWriteTimeout { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance int32 ReadWriteTimeout" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Docs><value>To be added.</value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="P:System.Net.HttpWebRequest.ReadWriteTimeout" /> property is used when writing to the stream returned by the <see cref="M:System.Net.HttpWebRequest.GetRequestStream" /> method or reading from the stream returned by the <see cref="M:System.Net.HttpWebResponse.GetResponseStream" /> method.</para><para>Specifically, the <see cref="P:System.Net.HttpWebRequest.ReadWriteTimeout" /> property controls the time-out for the <see cref="M:System.IO.Stream.Read(System.Byte[],System.Int32,System.Int32)" /> method, which is used to read the stream returned by the <see cref="M:System.Net.HttpWebResponse.GetResponseStream" /> method, and for the <see cref="M:System.IO.Stream.Write(System.Byte[],System.Int32,System.Int32)" /> method, which is used to write to the stream returned by the <see cref="M:System.Net.HttpWebRequest.GetRequestStream" /> method.</para><para>To specify the amount of time to wait for the request to complete, use the <see cref="P:System.Net.HttpWebRequest.Timeout" /> property.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets a time-out in milliseconds when writing to or reading from a stream.</para></summary></Docs></Member><Member MemberName="Referer"><MemberSignature Language="ILASM" Value=".property string Referer { public hidebysig specialname instance string get_Referer() public hidebysig specialname instance void set_Referer(string value) }" /><MemberSignature Language="C#" Value="public string Referer { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance string Referer" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.String</ReturnType></ReturnValue><Parameters /><Docs><value><para> A <see cref="T:System.String" /> containing the 
   value of the HTTP Referer header. The default value is
<see langword="null" />.</para></value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>If the <see cref="P:System.Net.HttpWebRequest.AllowAutoRedirect" /> property is true, the <see cref="P:System.Net.HttpWebRequest.Referer" /> property is set automatically when the request is redirected to another site.</para><para>To clear the Referer HTTP header, set the <see cref="P:System.Net.HttpWebRequest.Referer" /> property to null.</para><block subset="none" type="note"><para>The value for this property is stored in <see cref="T:System.Net.WebHeaderCollection" />. If WebHeaderCollection is set, the property value is lost.</para></block></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets the value of the Referer HTTP header.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="RequestUri"><MemberSignature Language="ILASM" Value=".property class System.Uri RequestUri { public hidebysig virtual specialname class System.Uri get_RequestUri() }" /><MemberSignature Language="C#" Value="public override Uri RequestUri { get; }" /><MemberSignature Language="ILAsm" Value=".property instance class System.Uri RequestUri" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Uri</ReturnType></ReturnValue><Parameters /><Docs><value><para>The <see cref="T:System.Uri" /> of the resource that receives requests sent by the
   current instance.</para></value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="T:System.Uri" /> object passed to <see cref="T:System.Net.HttpWebRequest" /> by the call to <see cref="M:System.Net.WebRequest.Create(System.String)" />.</para><para>Following a redirection header does not change the <see cref="P:System.Net.HttpWebRequest.RequestUri" /> property. To get the actual URI that responded to the request, examine the <see cref="P:System.Net.HttpWebRequest.Address" /> property.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets the original Uniform Resource Identifier (URI) of the request.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="SendChunked"><MemberSignature Language="ILASM" Value=".property bool SendChunked { public hidebysig specialname instance bool get_SendChunked() public hidebysig specialname instance void set_SendChunked(bool value) }" /><MemberSignature Language="C#" Value="public bool SendChunked { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance bool SendChunked" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters /><Docs><value><para><see langword="true " />
to send data in segments; otherwise,
<see langword="false" />. The default value is <see langword="false" />.</para></value><exception cref="T:System.InvalidOperationException">A set operation was requested but data has already been written to the request data stream.</exception><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>When <see cref="P:System.Net.HttpWebRequest.SendChunked" /> is true, the request sends data to the Internet resource in segments. The Internet resource must support receiving chunked data.</para><para>Changing the <see cref="P:System.Net.HttpWebRequest.SendChunked" /> property after the request has been started by calling the <see cref="M:System.Net.HttpWebRequest.GetRequestStream" />, <see cref="M:System.Net.HttpWebRequest.BeginGetRequestStream(System.AsyncCallback,System.Object)" />, <see cref="M:System.Net.HttpWebRequest.GetResponse" />, or <see cref="M:System.Net.HttpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object)" /> method throws an <see cref="T:System.InvalidOperationException" />.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets a value that indicates whether to send data in segments to the Internet resource.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="ServicePoint"><MemberSignature Language="ILASM" Value=".property class System.Net.ServicePoint ServicePoint { public hidebysig specialname instance class System.Net.ServicePoint get_ServicePoint() }" /><MemberSignature Language="C#" Value="public System.Net.ServicePoint ServicePoint { get; }" /><MemberSignature Language="ILAsm" Value=".property instance class System.Net.ServicePoint ServicePoint" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Net.ServicePoint</ReturnType></ReturnValue><Parameters /><Docs><value><para>A <see cref="T:System.Net.ServicePoint" /> that represents the network connection to the destination. The value of this property can be, but is not required to be,  <see langword="null" /> until the <see cref="M:System.Net.HttpWebRequest.GetResponse" /> method is called.</para></value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="P:System.Net.ServicePoint.Address" /> property may be different from <see cref="P:System.Net.HttpWebRequest.Address" /> if the request is redirected.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets the service point to use for the request.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="SupportsCookieContainer"><MemberSignature Language="C#" Value="public virtual bool SupportsCookieContainer { get; }" /><MemberSignature Language="ILAsm" Value=".property instance bool SupportsCookieContainer" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Attributes><Attribute><AttributeName>System.MonoTODO("for portable library support")</AttributeName></Attribute></Attributes><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Docs><value>To be added.</value><remarks>To be added.</remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets a value that indicates whether the request provides support for a <see cref="T:System.Net.CookieContainer" />.</para></summary></Docs></Member><Member MemberName="System.Runtime.Serialization.ISerializable.GetObjectData"><MemberSignature Language="C#" Value="void ISerializable.GetObjectData (System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext);" /><MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance void System.Runtime.Serialization.ISerializable.GetObjectData(class System.Runtime.Serialization.SerializationInfo serializationInfo, valuetype System.Runtime.Serialization.StreamingContext streamingContext) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="serializationInfo" Type="System.Runtime.Serialization.SerializationInfo" /><Parameter Name="streamingContext" Type="System.Runtime.Serialization.StreamingContext" /></Parameters><Docs><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>Any objects included in the <see cref="T:System.Runtime.Serialization.SerializationInfo" /> are automatically tracked and serialized by the formatter.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Populates a <see cref="T:System.Runtime.Serialization.SerializationInfo" /> with the data needed to serialize the target object.</para></summary><param name="serializationInfo"><attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Runtime.Serialization.SerializationInfo" /> to populate with data. </param><param name="streamingContext"><attribution license="cc4" from="Microsoft" modified="false" />A <see cref="T:System.Runtime.Serialization.StreamingContext" /> that specifies the destination for this serialization.</param></Docs></Member><Member MemberName="Timeout"><MemberSignature Language="ILASM" Value=".property int32 Timeout { public hidebysig virtual specialname int32 get_Timeout() public hidebysig virtual specialname void set_Timeout(int32 value) }" /><MemberSignature Language="C#" Value="public override int Timeout { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance int32 Timeout" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Parameters /><Docs><value><para>A <see cref="T:System.Int32" /> indicating the number of milliseconds to wait for a response until the request times out,
   or <see cref="F:System.Threading.Timeout.Infinite" qualify="true" /> to indicate that the request does not
   time out.</para></value><exception cref="T:System.ArgumentOutOfRangeException"><para>A value less than zero and not equal to <see cref="F:System.Threading.Timeout.Infinite" qualify="true" /> is specified for a set operation.</para></exception><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para><see cref="P:System.Net.HttpWebRequest.Timeout" /> is the number of milliseconds that a subsequent synchronous request made with the <see cref="M:System.Net.HttpWebRequest.GetResponse" /> method waits for a response, and the <see cref="M:System.Net.HttpWebRequest.GetRequestStream" /> method waits for a stream. The <see cref="P:System.Net.HttpWebRequest.Timeout" /> applies to the entire request and response, not individually to the <see cref="M:System.Net.HttpWebRequest.GetRequestStream" /> and <see cref="M:System.Net.HttpWebRequest.GetResponse" /> method calls. If the resource is not returned within the time-out period, the request throws a <see cref="T:System.Net.WebException" /> with the <see cref="P:System.Net.WebException.Status" /> property set to <see cref="F:System.Net.WebExceptionStatus.Timeout" />. </para><para>The <see cref="P:System.Net.HttpWebRequest.Timeout" /> property must be set before the <see cref="M:System.Net.HttpWebRequest.GetRequestStream" /> or <see cref="M:System.Net.HttpWebRequest.GetResponse" /> method is called. Changing the <see cref="P:System.Net.HttpWebRequest.Timeout" /> property after calling the <see cref="M:System.Net.HttpWebRequest.GetRequestStream" /> or <see cref="M:System.Net.HttpWebRequest.GetResponse" /> method has no effect</para><para>The <see cref="P:System.Net.HttpWebRequest.Timeout" /> property has no effect on asynchronous requests made with the <see cref="M:System.Net.HttpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object)" /> or <see cref="M:System.Net.HttpWebRequest.BeginGetRequestStream(System.AsyncCallback,System.Object)" /> method.</para><block subset="none" type="note"><para>In the case of asynchronous requests, the client application implements its own time-out mechanism. Refer to the example in the <see cref="M:System.Net.HttpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object)" /> method.</para></block><para>To specify the amount of time to wait before a read or write operation times out, use the <see cref="P:System.Net.HttpWebRequest.ReadWriteTimeout" /> property.</para><para>A Domain Name System (DNS) query may take up to 15 seconds to return or time out. If your request contains a host name that requires resolution and you set <see cref="P:System.Net.FileWebRequest.Timeout" /> to a value less than 15 seconds, it may take 15 seconds or more before a <see cref="T:System.Net.WebException" /> is thrown to indicate a timeout on your request.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets the time-out value in milliseconds for the <see cref="M:System.Net.HttpWebRequest.GetResponse" /> and <see cref="M:System.Net.HttpWebRequest.GetRequestStream" /> methods.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="TransferEncoding"><MemberSignature Language="ILASM" Value=".property string TransferEncoding { public hidebysig specialname instance string get_TransferEncoding() public hidebysig specialname instance void set_TransferEncoding(string value) }" /><MemberSignature Language="C#" Value="public string TransferEncoding { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance string TransferEncoding" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.String</ReturnType></ReturnValue><Parameters /><Docs><value><para>A <see cref="T:System.String" /> that contains the value of the
   HTTP Transfer-encoding header.
   The default value is <see langword="null" />.</para></value><exception cref="T:System.InvalidOperationException"><see cref="P:System.Net.HttpWebRequest.TransferEncoding" /> is set when <see cref="P:System.Net.HttpWebRequest.SendChunked" /> is <see langword="false" />.</exception><exception cref="T:System.ArgumentException"><see cref="P:System.Net.HttpWebRequest.TransferEncoding" /> is set to the value "Chunked". This value is case insensitive.</exception><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>Before you can set the <see cref="P:System.Net.HttpWebRequest.TransferEncoding" /> property, you must first set the <see cref="P:System.Net.HttpWebRequest.SendChunked" /> property to true. Clearing <see cref="P:System.Net.HttpWebRequest.TransferEncoding" /> by setting it to null has no effect on the value of <see cref="P:System.Net.HttpWebRequest.SendChunked" />.</para><para>Values assigned to the <see cref="P:System.Net.HttpWebRequest.TransferEncoding" /> property replace any existing contents.</para><block subset="none" type="note"><para>The value for this property is stored in <see cref="T:System.Net.WebHeaderCollection" />. If WebHeaderCollection is set, the property value is lost.</para></block></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets the value of the Transfer-encoding HTTP header.</para></summary></Docs><Excluded>0</Excluded></Member><Member MemberName="UnsafeAuthenticatedConnectionSharing"><MemberSignature Language="C#" Value="public bool UnsafeAuthenticatedConnectionSharing { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance bool UnsafeAuthenticatedConnectionSharing" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Docs><value>To be added.</value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The default value for this property is false, which causes the current connection to be closed after a request is completed. Your application must go through the authentication sequence every time it issues a new request.</para><para>If this property is set to true, the connection used to retrieve the response remains open after the authentication has been performed. In this case, other requests that have this property set to true may use the connection without re-authenticating. In other words, if a connection has been authenticated for user A, user B may reuse A's connection; user B's request is fulfilled based on the credentials of user A.</para><block subset="none" type="note"><para>Because it is possible for an application to use the connection without being authenticated, you need to be sure that there is no administrative vulnerability in your system when setting this property to true. If your application sends requests for multiple users (impersonates multiple user accounts) and relies on authentication to protect resources, do not set this property to true unless you use connection groups as described below.</para></block><para>You may want to consider enabling this mechanism if your are having performance problems and your application is running on a Web server with integrated Windows authentication.</para><para>Enabling this setting opens the system to security risks. If you set the <see cref="P:System.Net.HttpWebRequest.UnsafeAuthenticatedConnectionSharing" /> property to true be sure to take the following precautions: </para><list type="bullet"><item><para>Use the <see cref="P:System.Net.HttpWebRequest.ConnectionGroupName" /> property to manage connections for different users. This avoids the potential use of the connection by non-authenticated applications. For example, user A should have a unique connection group name that is different from user B. This provides a layer of isolation for each user account.</para></item><item><para>Run your application in a protected environment to help avoid possible connection exploits.</para></item></list><para>If you control the back-end server, as an alternative you might consider turning off authentication persistence. This increases performance to a lesser degree, but it is safer. For more details, search for AuthPersistence in the MSDN library at <see cref="http://msdn.microsoft.com/library">http://msdn.microsoft.com/library</see>.</para><block subset="none" type="note"><para>If both <see cref="P:System.Net.WebRequest.PreAuthenticate" /> and <see cref="P:System.Net.HttpWebRequest.UnsafeAuthenticatedConnectionSharing" /> are set to true, each request is sent using a connection from the unsafe pool, but with an Authorization header.</para></block></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets a value that indicates whether to allow high-speed NTLM-authenticated connection sharing.</para></summary></Docs></Member><Member MemberName="UseDefaultCredentials"><MemberSignature Language="C#" Value="public override bool UseDefaultCredentials { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance bool UseDefaultCredentials" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Docs><value>To be added.</value><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>Set this property to true when requests made by this <see cref="T:System.Net.HttpWebRequest" /> object should, if requested by the server, be authenticated using the credentials of the currently logged on user. For client applications, this is the desired behavior in most scenarios. For middle-tier applications, such as ASP.NET applications, instead of using this property, you would typically set the <see cref="P:System.Net.HttpWebRequest.Credentials" /> property to the credentials of the client on whose behalf the request is made.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets a <see cref="T:System.Boolean" /> value that controls whether default credentials are sent with requests.</para></summary></Docs></Member><Member MemberName="UserAgent"><MemberSignature Language="ILASM" Value=".property string UserAgent { public hidebysig specialname instance string get_UserAgent() public hidebysig specialname instance void set_UserAgent(string value) }" /><MemberSignature Language="C#" Value="public string UserAgent { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance string UserAgent" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>1.0.5000.0</AssemblyVersion><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.String</ReturnType></ReturnValue><Parameters /><Docs><value><para>A <see cref="T:System.String" /> containing the value of the HTTP User-agent header. The default value is
<see langword="null" />.</para></value><remarks><para><block subset="none" type="note">For additional 
      information see section 14.43 of IETF RFC 2616 - HTTP/1.1.</block></para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets or sets the value of the User-agent HTTP header.</para></summary></Docs><Excluded>0</Excluded></Member></Members><TypeExcluded>0</TypeExcluded></Type>