Sys.Net.WebRequestManager (Clase)
Actualización: noviembre 2007
Administra el flujo de solicitudes web emitidas por el objeto Sys.Net.WebRequest al objeto del elemento de ejecución asociado.
Espacio de nombres:Sys.Net
Hereda: nada
Sys.Net.WebRequestManager.memberName;
Members
Name |
Description |
---|---|
Inicializa una nueva instancia de la clase Sys.Net.WebRequestManager cuando se implementa en una clase derivada. |
|
Registra un controlador de evento de solicitud completada de WebRequestManager. |
|
Registra un controlador de evento de solicitud de llamada de WebRequestManager. |
|
Quita el controlador de eventos establecido por el método add_completedRequest. |
|
Quita el controlador de eventos establecido por el método add_invokingRequest. |
|
Ejecuta la solicitud web especificada. |
|
Obtiene o establece el elemento de ejecución predeterminado de la solicitud web. |
|
Obtiene o establece el tiempo de espera predeterminado de la solicitud web. |
|
Se produce cuando se controla una solicitud. |
|
Se produce cuando se llama a una función de controlador para la solicitud. |
Comentarios
El elemento de ejecución predeterminado asociado a un objeto WebRequest es una instancia de la clase XmlHttpExecutor. El elemento de ejecución es responsable de crear las solicitudes de red reales.
La clase WebRequestManager define el comportamiento predeterminado de todas las solicitudes web para que no sea necesario especificar valores de configuración de red de bajo nivel para cada solicitud.
Cada página sólo contiene una instancia de WebRequestManager. Sin embargo, puede haber varias instancias de la clase WebRequest y del elemento de ejecución relacionado.
Ejemplo
En el ejemplo siguiente se muestra cómo utilizar la clase WebRequestManager para establecer las propiedades comunes y ejecutar una solicitud web. En el ejemplo se muestra una página web y el script de cliente utilizado para interactuar con la clase 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();
}
}
Vea también
Referencia
Sys.Net.WebRequestExecutor (Clase)