This abstract base class provides basic functionality for
communication between a web service and proxy class. The
System.Web.Services.Discovery.DiscoveryClientProtocol,
HttpSimpleClientProtocol, and
SoapHttpClientProtocol classes all inherit from
HttpWebClientProtocol. The proxy class inherits
from one of these derived classes, depending on which transmission
protocol it uses.
You can use the Proxy property to connect to a web
service through a firewall, as in WS.Proxy = New
WebProxy("http://proxyserver:80", True).
This property will override the computer's default
Internet settings. You can also set the
AllowAutoRedirect property to allow a client to
follow server redirects. This is False by default
for security reasons. The UserAgent property is
automatically set to something like "MS Web Services
Client Protocol 1.0.2509.0," where 1.0.2509.0 is the
Common Language Runtime version.
The CookieContainer property is important when
connecting to a web service that uses ASP.NET's
session state facility. To allow a proxy class to reuse the same
session on subsequent calls, you must explicitly create a new (empty)
System.Net.CookieContainer object and assign it to
the CookieContainer property. This allows the
proxy class to store the session cookie with each call. If you want
multiple proxy class instances to access the same session, or if you
want to recreate a proxy class and use a previous session that has
not yet timed out, you must take extra steps to transfer or store the
System.Net.CookieContainer object.
public abstract class HttpWebClientProtocol : WebClientProtocol {
// Protected Constructors
protected HttpWebClientProtocol( );
// Public Instance Properties
public bool AllowAutoRedirect{set; get; }
public X509CertificateCollection ClientCertificates{get; }
public CookieContainer CookieContainer{set; get; }
public IWebProxy Proxy{set; get; }
public bool UnsafeAuthenticatedConnectionSharing{set; get; }
public string UserAgent{set; get; }
// Protected Instance Methods
protected override WebRequest GetWebRequest(Uri uri); // overrides WebClientProtocol
protected override WebResponse GetWebResponse(System.Net.WebRequest request); // overrides WebClientProtocol
protected override WebResponse GetWebResponse(System.Net.WebRequest request,
IAsyncResult result);// overrides WebClientProtocol
}