다음을 통해 공유


Sys.Net.WebRequestManager 클래스

업데이트: 2007년 11월

연결된 실행자 개체에 대해 Sys.Net.WebRequest 개체에서 발생되는 웹 요청의 흐름을 관리합니다.

네임스페이스:Sys.Net

상속: 없음

Sys.Net.WebRequestManager.memberName;

멤버

이름

설명

Sys.Net.WebRequestManager 생성자

파생 클래스에서 구현되는 경우 Sys.Net.WebRequestManager 클래스의 새 인스턴스를 초기화합니다.

Sys.Net.WebRequestManager add_completedRequest 메서드

WebRequestManager의 완료된 요청 이벤트에 대한 처리기를 등록합니다.

Sys.Net.WebRequestManager add_invokingRequest 메서드

WebRequestManager의 호출 요청 이벤트에 대한 처리기를 등록합니다.

Sys.Net.WebRequestManager remove_completedRequest 메서드

add_completedRequest 메서드에서 설정한 이벤트 처리기를 제거합니다.

Sys.Net.WebRequestManager remove_invokingRequest 메서드

add_invokingRequest 메서드에서 설정한 이벤트 처리기를 제거합니다.

Sys.Net.WebRequestManager.executeRequest 메서드

지정된 웹 요청을 실행합니다.

Sys.Net.WebRequestManager defaultExecutor 속성

웹 요청의 기본 실행자를 가져오거나 설정합니다.

Sys.Net.WebRequestManager defaultTimeout 속성

웹 요청의 기본 제한 시간을 가져오거나 설정합니다.

Sys.Net.WebRequestManager completedRequest 이벤트

요청이 처리되면 발생합니다.

Sys.Net.WebRequestManager invokingRequest 이벤트

요청에 대해 처리기 함수를 호출하면 발생합니다.

설명

WebRequest 개체에 연결된 기본 실행자는 XmlHttpExecutor 클래스의 인스턴스입니다. 이 실행자는 실제 네트워크 요청을 수행합니다.

WebRequestManager 클래스는 모든 웹 요청에 대한 기본 동작을 정의하므로 각 요청에 대해 하위 수준의 네트워크 구성 설정을 지정할 필요가 없습니다.

각 페이지에는 WebRequestManager 인스턴스가 하나만 포함되어 있습니다. 그러나 WebRequest 클래스 및 관련 실행자의 인스턴스를 여러 개 포함할 수도 있습니다.

예제

다음 예제에서는 WebRequestManager 클래스를 사용하여 공용 속성을 설정하고 웹 요청을 실행하는 방법을 보여 줍니다. 이 예제에는 WebRequestManager 클래스와 상호 작용하는 데 사용되는 클라이언트 스크립트 및 웹 페이지가 표시됩니다.

<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml" >
    <head id="Head1" runat="server">

        <title> WebRequestManager  Example </title>

        <style type="text/css">
            body {  font: 11pt Trebuchet MS;
                    font-color: #000000;
                    padding-top: 72px;
                    text-align: center }

            .text { font: 8pt Trebuchet MS }
        </style>



     </head>

   <body>


    <h2>WebRequestManager Example</h2>

        <form id="form1" runat="server">
            <asp:ScriptManager runat="server" ID="scriptManagerId">
                <Scripts>
                    <asp:ScriptReference Path="WebRequestManager.js" />
                </Scripts>
            </asp:ScriptManager>
        </form>




        <table>
            <tr align="left">
                <td>Make a Web request:</td>
                <td>
                    <button id="Button1" 
                        title="adds and remove handlers, too"  
                        onclick="MakeWebRequest(); return false;">Web Request</button>
                </td>
            </tr>
            <tr align="left">
                <td>Set, get default executor:</td>
                <td>
                    <button id="Button2"  
                        onclick="DefaultExecutor(); return false;">Executor</button>
                </td>
           </tr>
           <tr align="left">
                <td>Set, get default timeout:</td>
                <td>
                    <button id="Button3" 
                        onclick="DefaultTimeout(); return false;">Timeout</button>
                </td>
           </tr>
        </table>


        <hr />

        <div id="ResultId" style="background-color:Aqua;"></div>


    </body>

</html>
<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml" >
    <head id="Head1" runat="server">

        <title> WebRequestManager  Example </title>

        <style type="text/css">
            body {  font: 11pt Trebuchet MS;
                    font-color: #000000;
                    padding-top: 72px;
                    text-align: center }

            .text { font: 8pt Trebuchet MS }
        </style>



     </head>

   <body>


    <h2>WebRequestManager Example</h2>

        <form id="form1" runat="server">
            <asp:ScriptManager runat="server" ID="scriptManagerId">
                <Scripts>
                    <asp:ScriptReference Path="WebRequestManager.js" />
                </Scripts>
            </asp:ScriptManager>
        </form>





        <table>
            <tr align="left">
                <td>Make a Web request:</td>
                <td>
                    <button id="Button1" 
                        title="adds and remove handlers, too"  
                        onclick="MakeWebRequest(); return false;">Web Request</button>
                </td>
            </tr>
            <tr align="left">
                <td>Set, get default executor:</td>
                <td>
                    <button id="Button2"  
                        onclick="DefaultExecutor(); return false;">Executor</button>
                </td>
           </tr>
           <tr align="left">
                <td>Set, get default timeout:</td>
                <td>
                    <button id="Button3" 
                        onclick="DefaultTimeout(); return false;">Timeout</button>
                </td>
           </tr>
        </table>


        <hr />

        <div id="ResultId" style="background-color:Aqua;"></div>


    </body>

</html>
var displayElement;

function pageLoad()
{
    displayElement = $get("ResultId");
}

// Adds invokingRequest and completedRequest
// handlers, and performs a Web request. 
function MakeWebRequest() 
{
    // Clear the previous results. 
    resultElement.innerHTML = "";

    // Instantiate a Web request.
    wRequest =  new Sys.Net.WebRequest();

    // Set the handler to process the Web request.
    Sys.Net.WebRequestManager.add_completedRequest(On_WebRequestCompleted);

    alert("Added On_WebRequestCompleted handler.");

    // Set the handler to call before the Web request
    // is executed.
    Sys.Net.WebRequestManager.add_invokingRequest(On_InvokingRequest);   

    alert("Added On_InvokingRequest handler.");

    // Set the request Url.  
    wRequest.set_url("getTarget.htm");

    // Execute the request.
    // Notice that you do not use the executeRequest method of
    // the WebRequestManager which is intended for internal 
    // use only as in: Sys.Net.WebRequestManager.executeRequest(wRequest).
    // The correct way to execute a request is the following:
    // wRequest.invoke();
    Sys.Net.WebRequestManager.executeRequest(wRequest);


}

// Removes the event handlers that were previusly added. 
function RemoveDefaultHandlers() 
{
    // Clear the previous results. 
    resultElement.innerHTML = "";

    Sys.Net.WebRequestManager.remove_completedRequest(On_WebRequestCompleted);

    alert("Removed On_WebRequestCompleted handler.");

    Sys.Net.WebRequestManager.remove_invokingRequest(On_InvokingRequest); 

    alert("Removed On_InvokingRequest handler.");

}


// Gets and sets the default executor.
function DefaultExecutor()
{
    // Clear the previous results. 
    resultElement.innerHTML = "";

    // Get system default executor type.
    var sysDefaultExecutor = 
        Sys.Net.WebRequestManager.get_defaultExecutorType();
    alert("Get default executor:" + sysDefaultExecutor);


    // Modify the default executor type.
    Sys.Net.WebRequestManager.set_defaultExecutorType(
    "Sys.Net.CustomExecutor");

    var customDefaultExecutor = 
        Sys.Net.WebRequestManager.get_defaultExecutorType();

    alert("Set default executor: " + customDefaultExecutor);

    // Set the executor back to the system default. This is 
    // to allow the WebRequest script to run.
    executor = "Sys.Net.XMLHttpExecutor";
    Sys.Net.WebRequestManager.set_defaultExecutorType(
    sysDefaultExecutor);    

}


// Gets and sets the default timeout.
function DefaultTimeout()
{
    // Clear the previous results. 
    resultElement.innerHTML = "";

    // Get system default timeout.
    var sysDefaultTimeout = 
        Sys.Net.WebRequestManager.get_defaultTimeout();

    alert("Get default timeout: " + sysDefaultTimeout);


    // Set custom default timeout.
    Sys.Net.WebRequestManager.set_defaultTimeout(100);

    var customDefaultTimeout = 
        Sys.Net.WebRequestManager.get_defaultTimeout();

    alert("Set default timeout: " + customDefaultTimeout);


    // Set the timeout back to the system default. 
    Sys.Net.WebRequestManager.set_defaultTimeout(
    sysDefaultTimeout);    

}


// The On_InvokingRequest can be used to perform
// processing prior to the Web request being executed. 
function On_InvokingRequest(executor, eventArgs)
{
    alert("Executing OnInvokingRequest handler, before the Web request.");

    // Add custom code to perform processing prior
    // to the request being executed or to abort the 
    // request.
    alert("The current executor is: " + 
        executor.get_defaultExecutorType());

    // Use the eventArgs of type
    // NetworkRequestEventArgs to access the 
    // current WebRequest instance.
    var currentRequest = eventArgs.get_webRequest();
    var requestUrl = currentRequest.getResolvedUrl();           
    alert("Current request URL: " + requestUrl);
}

// The On_WebRequestComplete occurs after the
// Web request has returned, and can be used to
// get error status, process returned data, etc...
function On_WebRequestCompleted(executor, eventArgs) 
{

    if(executor.get_responseAvailable()) 
    {

        // Clear the previous results. 
        resultElement.innerHTML = "";

        // Display Web request status.                 
        resultElement.innerHTML  +=
          "Status: [" + executor.get_statusCode() + " " + 
                    executor.get_statusText() + "]" + "<br/>";

        // Display Web request headers.
        resultElement.innerHTML  += 
            "Headers: ";
        resultElement.innerHTML  += 
            executor.getAllResponseHeaders() + "<br/>";

        // Display Web request body.
        resultElement.innerHTML += 
            "Body: ";

        resultElement.innerHTML  += 
           executor.get_responseData();

    }

}

참고 항목

참조

Sys.Net.WebRequestExecutor 클래스

Sys.Net.XMLHttpExecutor 클래스

Sys.Net.WebRequest 클래스