Compartir a través de


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

Sys.Net.WebRequestManager (Constructor)

Inicializa una nueva instancia de la clase Sys.Net.WebRequestManager cuando se implementa en una clase derivada.

Sys.Net.WebRequestManager add_completedRequest (Método)

Registra un controlador de evento de solicitud completada de WebRequestManager.

Sys.Net.WebRequestManager add_invokingRequest (Método)

Registra un controlador de evento de solicitud de llamada de WebRequestManager.

Sys.Net.WebRequestManager remove_completedRequest (Método)

Quita el controlador de eventos establecido por el método add_completedRequest.

Sys.Net.WebRequestManager remove_invokingRequest (Método)

Quita el controlador de eventos establecido por el método add_invokingRequest.

Sys.Net.WebRequestManager.executeRequest (Método)

Ejecuta la solicitud web especificada.

Sys.Net.WebRequestManager defaultExecutor (Propiedad)

Obtiene o establece el elemento de ejecución predeterminado de la solicitud web.

Sys.Net.WebRequestManager defaultTimeout (Propiedad)

Obtiene o establece el tiempo de espera predeterminado de la solicitud web.

Sys.Net.WebRequestManager completedRequest (Evento)

Se produce cuando se controla una solicitud.

Sys.Net.WebRequestManager invokingRequest (Evento)

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)

Sys.Net.XMLHttpExecutor (Clase)

Sys.Net.WebRequest (Clase)