HttpWebClientProtocol 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
HTTP 전송 프로토콜을 사용하는 모든 XML 웹 서비스 클라이언트 프록시의 기본 클래스를 나타냅니다.
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
- 상속
- 파생
- 특성
예제
다음 예제는 명명 Math된 XML 웹 서비스를 호출하는 ASP.NET Web Form입니다. 함수 내에서 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>
설명
이 클래스의 속성은 XML 웹 서비스 요청 및 응답을 전송하는 데 사용되는 HTTP 요청 개체의 동작을 제어하는 데 사용됩니다. 속성은 에 있는 속성에 매핑됩니다 HttpWebRequest.
HTTP를 사용하여 XML 웹 서비스와 통신하려면 XML 웹 서비스에 대해 간접 또는 직접 HttpWebClientProtocol 파생되는 프록시 클래스를 만들어야 합니다. 프록시 클래스를 수동으로 만드는 대신 Wsdl.exe 도구를 사용하여 지정된 XML 웹 서비스의 서비스 설명에 대한 프록시 클래스를 만들 수 있습니다.
HttpWebClientProtocol은 모든 프록시 클래스의 기본 클래스이므로 해당 속성은 프록시 클래스에 있습니다. 이러한 속성은 기본 전송의 요청 동작을 제어하는 데 유용합니다. 예를 들어 방화벽을 Proxy 통해 XML 웹 서비스를 호출하는 데 이 속성을 사용합니다. 이러한 속성 중 대부분은 웹 요청을 만드는 속성을 초기화하는 HttpWebRequest 데 사용됩니다.
SoapHttpClientProtocol는 HttpGetClientProtocolSOAP, HTTP-GET 및 HttpPostClientProtocol HTTP-POST 각각에 대한 지원을 제공하기 위해 직간접적으로 HttpWebClientProtocol 파생됩니다.
생성자
| Name | Description |
|---|---|
| HttpWebClientProtocol() |
HttpWebClientProtocol 클래스의 새 인스턴스를 초기화합니다. |
속성
| Name | Description |
|---|---|
| AllowAutoRedirect |
클라이언트가 서버 리디렉션을 자동으로 따르는지 여부를 가져오거나 설정합니다. |
| CanRaiseEvents |
구성 요소가 이벤트를 발생시키는지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 Component) |
| ClientCertificates |
클라이언트 인증서의 컬렉션을 가져옵니다. |
| ConnectionGroupName |
요청에 대한 연결 그룹의 이름을 가져오거나 설정합니다. (다음에서 상속됨 WebClientProtocol) |
| Container |
를 IContainer 포함하는 값을 가져옵니다 Component. (다음에서 상속됨 Component) |
| CookieContainer |
쿠키 컬렉션을 가져오거나 설정합니다. |
| 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 |
클라이언트가 요청하는 XML 웹 서비스의 기본 URL을 가져오거나 설정합니다. (다음에서 상속됨 WebClientProtocol) |
| UseDefaultCredentials |
속성을 속성 값으로 설정할 Credentials 지 여부를 나타내는 값을 DefaultCredentials 가져오거나 설정합니다. (다음에서 상속됨 WebClientProtocol) |
| UserAgent |
각 요청과 함께 전송되는 사용자 에이전트 헤더의 값을 가져오거나 설정합니다. |
메서드
| Name | Description |
|---|---|
| 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) |
지정된 URI에 대한 a WebRequest 를 만듭니다. |
| GetWebResponse(WebRequest, IAsyncResult) |
XML 웹 서비스 메서드에 대한 비동기 요청의 응답을 반환합니다. |
| GetWebResponse(WebRequest) |
XML 웹 서비스 메서드에 대한 동기 요청의 응답을 반환합니다. |
| InitializeLifetimeService() |
사용되지 않음.
이 인스턴스의 수명 정책을 제어하는 수명 서비스 개체를 가져옵니다. (다음에서 상속됨 MarshalByRefObject) |
| MemberwiseClone() |
현재 Object단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
| MemberwiseClone(Boolean) |
현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다. (다음에서 상속됨 MarshalByRefObject) |
| ToString() |
String(있는 경우)의 Component이름을 포함하는 값을 반환합니다. 이 메서드는 재정의해서는 안 됩니다. (다음에서 상속됨 Component) |
이벤트
| Name | Description |
|---|---|
| Disposed |
구성 요소가 메서드 호출에 Dispose() 의해 삭제될 때 발생합니다. (다음에서 상속됨 Component) |
적용 대상
스레드 보안
이 클래스의 속성은 각 XML 웹 서비스 메서드 호출에 대한 개체의 WebRequest 새 인스턴스로 복사됩니다. 동일한 인스턴스에서 여러 스레드에서 XML WebClientProtocol 웹 서비스 메서드를 동시에 호출할 수 있지만 속성의 일관된 스냅샷이 개체로 전송되도록 하기 위한 WebRequest 동기화는 수행되지 않습니다. 따라서 속성을 수정하고 다른 스레드에서 동시 메서드 호출을 수행해야 하는 경우 XML 웹 서비스 프록시의 다른 인스턴스를 사용하거나 고유한 동기화를 제공해야 합니다.