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 или обеспечить собственную синхронизацию.