Freigeben über


Sys.Net.WebRequest-Klasse

Aktualisiert: November 2007

Stellt Clientskriptfunktionalität zum Durchführen einer Webanforderung bereit.

Namespace:Sys.Net

Vererbung: keine

var wRequest = new Sys.Net.WebRequest();

Konstruktoren

Name

Beschreibung

Sys.Net.WebRequest webRequest-Konstruktor

Initialisiert eine neue Instanz der WebRequest-Klasse.

Member

Name

Beschreibung

Sys.Net.WebRequest add_completed-Methode

Registriert einen Ereignishandler, der der Webanforderungsinstanz zugeordnet werden soll.

Sys.Net.WebRequest completed-Methode

Löst das abgeschlossene Ereignis für die zugeordnete Sys.Net.WebRequest-Instanz aus.

Sys.Net.WebRequest.getResolvedUrl-Methode

Ruft die aufgelöste URL der Webanforderungsinstanz ab.

Sys.Net.WebRequest invoke-Methode

Gibt einen Netzwerkaufruf für die Webanforderungsinstanz aus.

Sys.Net.WebRequest remove_completed-Methode

Entfernt den der Webanforderungsinstanz zugeordneten Ereignishandler.

Sys.Net.WebRequest body-Eigenschaft

Ruft den HTTP-Text der Webanforderung ab oder legt diesen fest.

Sys.Net.WebRequest executor-Eigenschaft

Ruft den Executor der zugeordneten Webanforderungsinstanz ab oder legt ihn fest.

Sys.Net.WebRequest headers-Eigenschaft

Ruft die HTTP-Header für die Webanforderung ab.

Sys.Net.WebRequest httpVerb-Eigenschaft

Ruft das zur Ausgabe der Webanforderung verwendete HTTP-Verb ab oder legt es fest.

Sys.Net.WebRequest timeout-Eigenschaft

Ruft den Timeoutwert für die Webanforderungsinstanz ab oder legt ihn fest.

Sys.Net.WebRequest url-Eigenschaft

Ruft die URL der Webanforderungsinstanz ab oder legt diese fest.

Sys.Net.WebRequest userContext-Eigenschaft

Ruft den der Webanforderungsinstanz zugeordneten Benutzerkontext ab oder legt ihn fest.

Hinweise

Die WebRequest-Klasse wird von Klassen der asynchronen Kommunikationsebene verwendet, um eine Webanforderung auszuführen. Normalerweise verwenden Sie diesen Typ nicht direkt in Ihren Anwendungen. Stattdessen rufen Sie vom Browser aus Webdienstmethoden oder statische Seitenmethoden unter Verwendung von Proxymethoden auf. Weitere Informationen finden Sie unter Verfügbarmachen von Webdiensten für Clientskript.

Sie können jedoch eine WebRequest-Instanz für die folgenden Szenarien erstellen und verwenden:

  • Wenn Sie Netzwerkanforderungen ausführen möchten, die keine einfachen Webdienstmethodenaufrufe darstellen.

  • Wenn Sie HTTP-Anforderungseigenschaften direkt festlegen möchten.

  • Wenn Sie einen benutzerdefinierten Executor verwenden, der auf der Sys.Net.WebRequestExecutor-Klasse basiert.

Beispiel

Im folgenden Beispiel wird veranschaulicht, wie eine Instanz der WebRequest-Klasse erstellt wird, um eine GET-Webanforderung auszuführen. Im Beispiel werden eine Webseite und das Clientskript veranschaulicht, das für die Interaktion mit der WebRequest-Klasse verwendet wird.

<%@ 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> Using WebRequest </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>Using WebRequest</h2>

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










        <table>
            <tr align="left">
                <td>Make GET Request:</td>
                <td>
                    <button id="Button1"  
                        onclick="GetWebRequest()">GET</button>
                </td>
            </tr>
            <tr align="left">  
                <td>Request Body:</td>
                <td>
                    <button id="Button2"  
                        onclick="PostWebRequest()">Body</button>
                </td>
            </tr>
            <tr align="left">
                <td>Request Timeout:</td>
                <td>
                    <button id="Button3"  
                        onclick="WebRequestTimeout()">Timeout</button>
                </td>
            </tr> 
            <tr align="left">
                <td>Request Completed Handler:</td>
                <td>
                    <button id="Button4"  
                        onclick="WebRequestCompleted()">Completed Handler</button>
                </td>
            </tr>
            <tr align="left">
                <td>Resolved Url:</td>
                <td>
                    <button id="Button5"  
                        onclick="GetWebRequestResolvedUrl()">Resolved Url</button>
                </td>
            </tr>
            <tr align="left">
                <td>Request Executor:</td>
                <td>
                    <button id="Button6"  
                        onclick="WebRequestExecutor()">Executor</button>
                </td>
            </tr>
            <tr align="left">
                <td>Request Header:</td>
                <td>
                    <button id="Button7"  
                        onclick="WebRequestHeader()">Header</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> Using WebRequest </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>Using WebRequest</h2>

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









        <table>
            <tr align="left">
                <td>Make GET Request:</td>
                <td>
                    <button id="Button1"  
                        onclick="GetWebRequest()">GET</button>
                </td>
            </tr>
            <tr align="left">  
                <td>Request Body:</td>
                <td>
                    <button id="Button2"  
                        onclick="PostWebRequest()">Body</button>
                </td>
            </tr>
            <tr align="left">
                <td>Request Timeout:</td>
                <td>
                    <button id="Button3"  
                        onclick="WebRequestTimeout()">Timeout</button>
                </td>
            </tr> 
            <tr align="left">
                <td>Request Completed Handler:</td>
                <td>
                    <button id="Button4"  
                        onclick="WebRequestCompleted()">Completed Handler</button>
                </td>
            </tr>
            <tr align="left">
                <td>Resolved Url:</td>
                <td>
                    <button id="Button5"  
                        onclick="GetWebRequestResolvedUrl()">Resolved Url</button>
                </td>
            </tr>
            <tr align="left">
                <td>Request Executor:</td>
                <td>
                    <button id="Button6"  
                        onclick="WebRequestExecutor()">Executor</button>
                </td>
            </tr>
            <tr align="left">
                <td>Request Header:</td>
                <td>
                    <button id="Button7"  
                        onclick="WebRequestHeader()">Header</button>
                </td>
            </tr>
        </table>



        <hr />

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



    </body>

</html>
var getPage;
var postPage;
var displayElement;

function pageLoad()
{
    getPage = "getTarget.htm";
    postPage = "postTarget.aspx";
    displayElement = $get("ResultId");
}

// This function performs a GET Web request 
// to retrieve  information from the Url specified in 
// the query string. 
function GetWebRequest()
{
    alert("Performing Get Web request.");

    // Instantiate the WebRequest object.
    var wRequest =  new Sys.Net.WebRequest();

    // Set the request Url.  
    wRequest.set_url(getPage);  

    // Set the request verb.
    wRequest.set_httpVerb("GET");

    // Set user's context
    wRequest.set_userContext("user's context");

    // Set the web request completed event handler,
    // for processing return data.
    wRequest.add_completed(OnWebRequestCompleted);


    // Clear the results page element.
    displayElement.innerHTML = "";

    // Execute the request.
    wRequest.invoke();  

}

// This function performs a POST Web request
// to upload information to the resource 
// identified by the Url. 
function PostWebRequest()
{
    // Instantiate the WebRequest object.
    var wRequest =  new Sys.Net.WebRequest();

    // Set the request Url.  
    wRequest.set_url(postPage); 

    // Set the request verb.
    wRequest.set_httpVerb("POST");

    var body = "Message=Hello! Do you hear me?"
    wRequest.set_body(body);
    wRequest.get_headers()["Content-Length"] = body.length;


    // Set the web request completed event handler,
    // for processing return data.
    wRequest.add_completed(OnWebRequestCompleted);

    // Clear the results page element.
    displayElement.innerHTML = "";

    // Execute the request.
    wRequest.invoke();  
}

// This function adds and removes the 
// Web request completed event handler.
function WebRequestCompleted()
{
    // Instantiate the WebRequest.
    var wRequest =  new Sys.Net.WebRequest();

    // Set the request Url.  
    wRequest.set_url(getPage);  

    // Set the web request completed event handler,
    // for processing return data.
    wRequest.add_completed(OnWebRequestCompleted);   
    alert("Added Web request completed handler");

    // Remove the web request completed event handler.
    // Comment the following two lines if you want to
    // use the handler.
    wRequest.remove_completed(OnWebRequestCompleted); 
    alert("Removed handler; the Web request return is not processed.");

    // Execute the request.
    wRequest.invoke();  
}

// This function gets the resolved Url 
// of the Web request instance.
function GetWebRequestResolvedUrl()
{
    // Instantiate the WebRequest.
    var wRequest =  new Sys.Net.WebRequest();

    // Set the request Url.  
    wRequest.set_url(getPage);  

    // Get the web request completed event handler.
    var resUrl = wRequest.getResolvedUrl();   
    alert("Resolved Url: " + resUrl);

    // Set the web request completed event handler,
    // for processing return data.
    wRequest.add_completed(OnWebRequestCompleted); 

    // Execute the request.
    wRequest.invoke();  

}


// This function gets and sets the 
// Web request time out.
function WebRequestTimeout()
{    
    // Instantiate the WebRequest.
    var wRequest =  new Sys.Net.WebRequest();

    // Set the request Url.  
    wRequest.set_url(getPage);  

    var defaultTimeout =  
        wRequest.get_timeout();

    // Set request timeout to 100 msec.
    wRequest.set_timeout(100);

    var newTimeout = 
        wRequest.get_timeout();

    alert("Default timeout: " + defaultTimeout);
    alert("New timeout: " + newTimeout);

    // Set the web request completed event handler,
    // for processing return data.
    wRequest.add_completed(OnWebRequestCompleted);   

    // Execute the request.
    wRequest.invoke();     
}


// This function sets the Web request
// executor, replacing the default one.
function WebRequestExecutor()
{    
    // Instantiate the WebRequest.
    var wRequest =  new Sys.Net.WebRequest();

    // Create the executor. In this case it is an
    // XMLHttpExecutor, equivalent to the default
    // executor. But, you can create a custom one.
    var executor = new Sys.Net.XMLHttpExecutor();

    // Set the executor, replacing the default one. 
    // In this case the executor is equivalent to the
    // default one.
    wRequest.set_executor(executor); 

    // Get the current executor       
    var executor =  
        wRequest.get_executor();

    alert("Response availabe: " + executor.get_responseAvailable())
}

 // This function sets an HTTP header for
 // the Web request.
 function WebRequestHeader() 
 {
       // Instantiate the WebRequest object.
    var wRequest =  new Sys.Net.WebRequest();

    // Set the request Url.  
    wRequest.set_url(postPage); 

    // Set the request verb.
    wRequest.set_httpVerb("POST");

    var body = "Message=Hello! Do you hear me?"
    wRequest.set_body(body);

    // Set the value of the HTTP header's "Content-Length".
    wRequest.get_headers()["Content-Length"] = body.length;

    // Set the web request completed event handler,
    // for processing return data.
    wRequest.add_completed(OnWebRequestCompletedHeader);

    // Clear the results page element.
    displayElement.innerHTML = "";

    // Execute the request.
    wRequest.invoke();  
}

// This the handler for the Web request completed event
// that is used to display return data.
function OnWebRequestCompleted(executor, eventArgs) 
{
    if(executor.get_responseAvailable()) 
    {

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

        // Display Web request status.                  
        DisplayWebRequestStatus(executor);

        // Display Web request headers.                  
        DisplayWebRequestHeaders(executor);

        // Display Web request body.                  
        DisplayWebRequestBody(executor);

    }
    else
    {
        if (executor.get_timedOut())
            alert("Timed Out");
        else
            if (executor.get_aborted())
                alert("Aborted");
    }
}


// This the handler for the Web request completed event
// that is used to display header information.
function OnWebRequestCompletedHeader(executor, eventArgs) 
{
    if(executor.get_responseAvailable()) 
    {

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

        // Display Web request headers.                  
        DisplayWebRequestHeaders(executor);

    }
    else
    {

        if (executor.get_timedOut())
            alert("Timed Out");

        else

            if (executor.get_aborted())
                alert("Aborted");

    }
}

// This function is used to display the Web request status.
function DisplayWebRequestStatus(executor)
{
     displayElement.innerHTML +=
     "Status: [" + 
     executor.get_statusCode() + " " + 
     executor.get_statusText() + "]" + "<br/>"
}

// This function is used to display Web request HTTP headers.
function DisplayWebRequestHeaders(executor)
{
    displayElement.innerHTML += 
        "Headers: ";
    displayElement.innerHTML += 
        executor.getAllResponseHeaders() + "<br/>";
 }

// This function is used to display the Web request body.
function DisplayWebRequestBody(executor)
{   
     displayElement.innerHTML += 
        "Body: ";
    if (document.all)
         displayElement.innerText += 
            executor.get_responseData();
    else
        // Firefox
         displayElement.textContent += 
            executor.get_responseData();
}

// This function is used to display the Web request message.
function DisplayInformation(message)
{
    // Clear the previous results.
     displayElement.innerHTML = "";
    // Display information.
    displayElement.innerHTML = "<br/>" + message;
}

if (typeof(Sys) !== "undefined") Sys.Application.notifyScriptLoaded();

Siehe auch

Referenz

Sys.Net.XMLHttpExecutor-Klasse

Sys.Net.WebRequestManager-Klasse