HttpWebClientProtocol Класс

Определение

Представляет базовый класс для всех клиентских прокси веб-служб XML, использующих транспортный протокол HTTP.

public ref class HttpWebClientProtocol abstract : System::Web::Services::Protocols::WebClientProtocol
public abstract class HttpWebClientProtocol : System.Web.Services.Protocols.WebClientProtocol
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class HttpWebClientProtocol : System.Web.Services.Protocols.WebClientProtocol
type HttpWebClientProtocol = class
    inherit WebClientProtocol
[<System.Runtime.InteropServices.ComVisible(true)>]
type HttpWebClientProtocol = class
    inherit WebClientProtocol
Public MustInherit Class HttpWebClientProtocol
Inherits WebClientProtocol
Наследование
Производный
Атрибуты

Примеры

В следующем примере показана веб-форма ASP.NET, которая вызывает веб-службу XML с именем Math. EnterBtn_Click В функции веб-форма позволяет серверу автоматически перенаправлять клиент на другие сайты. Он также задает учетные данные проверки подлинности клиента, параметры прокси-сервера, кодировку запроса и время ожидания запроса перед вызовом метода веб-службы XML.

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Net" %>

<html>
    <script language="C#" runat="server">
       void EnterBtn_Click(Object Src, EventArgs E) 
          {
             MyMath.Math math = new MyMath.Math();

             // Allow the server to redirect the request.
             math.AllowAutoRedirect = true;

             // Set the client-side credentials using the Credentials property.
             ICredentials credentials =
                new NetworkCredential("Joe","password","mydomain");
             math.Credentials = credentials;

             // Set the proxy server to proxyserver, set the port to 80, and specify to bypass
             // the proxy server for local addresses.
             IWebProxy proxyObject = new WebProxy("http://proxyserver:80",true);
             math.Proxy = proxyObject;

             // Set the encoding to utf-8.
             math.RequestEncoding = System.Text.Encoding.UTF8;

             // Set the time out to 15 seconds
             math.Timeout = 15000;

             int total = math.Add(Convert.ToInt32(Num1.Text),
                Convert.ToInt32(Num2.Text));
             Total.Text = "Total: " + total.ToString();
         }
 
    </script>
 
    <body>
       <form action="MathClient.aspx" runat=server>
           
          Enter the two numbers you want to add and then press the Total button.
          <p>
          Number 1: <asp:textbox id="Num1" runat=server/>  +
          Number 2: <asp:textbox id="Num2" runat=server/> =
          <asp:button text="Total" Onclick="EnterBtn_Click" runat=server/>
          <p>
          <asp:label id="Total"  runat=server/>
          
       </form>
    </body>
 </html>
   
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Net" %>

<html>
    <script language="VB" runat="server">

    Sub EnterBtn_Click(Src As Object, E As EventArgs)
        Dim math As New MyMath.Math()
        
        ' Allow the server to redirect the request.
        math.AllowAutoRedirect = True
        
        ' Set the client-side credentials using the Credentials property.
        Dim credentials = New NetworkCredential("Joe", "password", "mydomain")
        math.Credentials = credentials
        
        ' Set the proxy server to proxyserver, set the port to 80 and specify to bypass
        ' the proxy server for local addresses.
        Dim proxyObject = New WebProxy("http://proxyserver:80", True)
        math.Proxy = proxyObject
        
        ' Set the encoding to utf-8.
        math.RequestEncoding = System.Text.Encoding.UTF8
        
        ' Set the time out to 15 seconds.
        math.Timeout = 15000
        
        Dim iTotal As Integer = math.Add(Convert.ToInt32(Num1.Text), _
           Convert.ToInt32(Num2.Text))
        Total.Text = "Total: " & iTotal.ToString()
    End Sub
 
    </script>
 
    <body>
       <form action="MathClient.aspx" runat=server>
           
          Enter the two numbers you want to add and then press the Total button.
          <p>
          Number 1: <asp:textbox id="Num1" runat=server/>  +
          Number 2: <asp:textbox id="Num2" runat=server/> =
          <asp:button text="Total" Onclick="EnterBtn_Click" runat=server/>
          <p>
          <asp:label id="Total"  runat=server/>
          
       </form>
    </body>
 </html>
   

Комментарии

Свойства этого класса используются для управления поведением объекта HTTP-запроса, используемого для передачи запроса и ответа веб-службы XML. Свойства сопоставляют свойства, найденные в HttpWebRequest.

Для взаимодействия с веб-службой XML с помощью HTTP необходимо создать прокси-класс, производный косвенно или непосредственно от HttpWebClientProtocol веб-службы XML. Вместо создания класса прокси-сервера вручную можно использовать средство Wsdl.exe для создания прокси-класса для определенного описания службы веб-службы XML.

Так как HttpWebClientProtocol является базовым классом для всех прокси-классов, его свойства находятся в классах прокси-сервера. Эти свойства полезны для управления поведением запроса базового транспорта. Например, используйте Proxy свойство для вызова веб-служб XML через брандмауэр. Многие из этих свойств используются для инициализации HttpWebRequest веб-запроса.

SoapHttpClientProtocol, HttpGetClientProtocolи HttpPostClientProtocol наследование напрямую или косвенно от HttpWebClientProtocol предоставления поддержки SOAP, HTTP-GET и HTTP-POST соответственно.

Конструкторы

HttpWebClientProtocol()

Инициализирует новый экземпляр класса HttpWebClientProtocol.

Свойства

AllowAutoRedirect

Получает или задает возможность клиента автоматически следовать перенаправлениям сервера.

CanRaiseEvents

Возвращает значение, показывающее, может ли компонент вызывать событие.

(Унаследовано от Component)
ClientCertificates

Получает коллекцию сертификатов клиента.

ConnectionGroupName

Возвращает или задает имя группы подключения для запроса.

(Унаследовано от WebClientProtocol)
Container

Возвращает объект IContainer, который содержит коллекцию Component.

(Унаследовано от Component)
CookieContainer

Получает или задает коллекцию файлов Cookie.

Credentials

Получает или задает учетные данные безопасности для проверки подлинности клиента веб-службы XML.

(Унаследовано от WebClientProtocol)
DesignMode

Возвращает значение, указывающее, находится ли данный компонент Component в режиме конструктора в настоящее время.

(Унаследовано от Component)
EnableDecompression

Получает или задает значение, указывающее, включено ли сжатие для данного объекта HttpWebClientProtocol.

Events

Возвращает список обработчиков событий, которые прикреплены к этому объекту Component.

(Унаследовано от Component)
PreAuthenticate

Получает или задает признак включения предварительной проверки подлинности.

(Унаследовано от WebClientProtocol)
Proxy

Получает или задает информацию о прокси для выполнения запроса веб-службы XML через брандмауэр.

RequestEncoding

Класс Encoding используется для выполнения клиентского запроса к веб-службе XML.

(Унаследовано от WebClientProtocol)
Site

Получает или задает ISite объекта Component.

(Унаследовано от Component)
Timeout

Указывает время (в миллисекундах), в течение которого клиент XML-веб-службы ждет ответа на синхронный запрос XML-веб-службы.

(Унаследовано от WebClientProtocol)
UnsafeAuthenticatedConnectionSharing

Получает или задает значение, указывающее, включено ли совместное использование подключения при работе клиента со средствами проверки подлинности NTLM для соединения с веб-сервером, на котором размещается веб-служба XML.

Url

Получает или задает URL-адрес веб-службы XML, запрашиваемой клиентом.

(Унаследовано от WebClientProtocol)
UseDefaultCredentials

Получает или задает значение, указывающее, должно ли для свойства Credentials устанавливаться значение свойства DefaultCredentials.

(Унаследовано от WebClientProtocol)
UserAgent

Получает или задает значение заголовка агента пользователя, посылаемого с каждым запросом.

Методы

Abort()

Отменяет запрос к методу веб-службы XML.

(Унаследовано от WebClientProtocol)
CancelAsync(Object)

Отменяет асинхронный вызов к методу веб-службы XML, если вызов еще не завершен.

CreateObjRef(Type)

Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.

(Унаследовано от MarshalByRefObject)
Dispose()

Освобождает все ресурсы, занятые модулем Component.

(Унаследовано от Component)
Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом Component, а при необходимости освобождает также управляемые ресурсы.

(Унаследовано от Component)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GenerateXmlMappings(Type, ArrayList)

Получает объект XmlMembersMapping для каждого метода веб-службы XML, раскрываемого указанным типом, и сохраняет сопоставления в списке ArrayList.

GenerateXmlMappings(Type[], ArrayList)

Получает объект XmlMembersMapping для каждого метода веб-службы XML, раскрываемого указанными типами, и сохраняет сопоставления в указанном списке ArrayList, а также в таблице Hashtable, которую возвращает этот метод.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetLifetimeService()
Является устаревшей.

Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра.

(Унаследовано от MarshalByRefObject)
GetService(Type)

Возвращает объект, представляющий службу, предоставляемую классом Component или классом Container.

(Унаследовано от Component)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
GetWebRequest(Uri)

Создает объект WebRequest для указанного URI-кода.

GetWebResponse(WebRequest)

Возвращает ответ на синхронный запрос к методу веб-службы XML.

GetWebResponse(WebRequest, IAsyncResult)

Возвращает ответ на асинхронный запрос метода веб-службы XML.

InitializeLifetimeService()
Является устаревшей.

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.

(Унаследовано от MarshalByRefObject)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
MemberwiseClone(Boolean)

Создает неполную копию текущего объекта MarshalByRefObject.

(Унаследовано от MarshalByRefObject)
ToString()

Возвращает объект String, содержащий имя Component, если оно есть. Этот метод не следует переопределять.

(Унаследовано от Component)

События

Disposed

Возникает при удалении компонента путем вызова метода Dispose().

(Унаследовано от Component)

Применяется к

Потокобезопасность

Свойства этого класса копируются в новый экземпляр WebRequest объекта для каждого вызова метода веб-службы XML. Хотя методы веб-службы XML можно вызывать в одном WebClientProtocol экземпляре из разных потоков одновременно, синхронизация не выполняется, чтобы гарантировать, что согласованный моментальный снимок свойств передается в WebRequest объект. Таким образом, если необходимо изменить свойства и выполнить параллельные вызовы методов из разных потоков, следует использовать другой экземпляр прокси-сервера веб-службы XML или обеспечить собственную синхронизацию.

См. также раздел