Sys.Net.WebRequestManager 클래스
업데이트: 2007년 11월
연결된 실행자 개체에 대해 Sys.Net.WebRequest 개체에서 발생되는 웹 요청의 흐름을 관리합니다.
네임스페이스:Sys.Net
상속: 없음
Sys.Net.WebRequestManager.memberName;
멤버
이름 |
설명 |
---|---|
파생 클래스에서 구현되는 경우 Sys.Net.WebRequestManager 클래스의 새 인스턴스를 초기화합니다. |
|
WebRequestManager의 완료된 요청 이벤트에 대한 처리기를 등록합니다. |
|
WebRequestManager의 호출 요청 이벤트에 대한 처리기를 등록합니다. |
|
add_completedRequest 메서드에서 설정한 이벤트 처리기를 제거합니다. |
|
add_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();
}
}