Поделиться через


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 веб-форма, которая вызывает веб-службу MathXML. 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, IAsyncResult)

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

GetWebResponse(WebRequest)

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

InitializeLifetimeService()
Устаревшие..

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

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

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

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

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

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

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

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

События

Имя Описание
Disposed

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

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

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

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

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

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