다음을 통해 공유


HttpWebClientProtocol 클래스

정의

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 데 사용됩니다.

SoapHttpClientProtocolHttpGetClientProtocolSOAP, 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 웹 서비스 프록시의 다른 인스턴스를 사용하거나 고유한 동기화를 제공해야 합니다.

추가 정보