WebRequest 类
Sys.Net.WebRequest 类
var wRequest = new Sys.Net.WebRequest();
成员
| 名称 | 说明 |
|---|---|
| 注册与 Web 请求实例关联的事件处理程序。 | |
| 引发关联 Sys.Net.WebRequest 实例的完成事件。 | |
| 获取 Web 请求实例的解析后的 URL。 | |
| 为 Web 请求实例发出网络调用。 | |
| 移除与 Web 请求实例关联的事件处理程序。 | |
| 获取或设置 Web 请求的 HTTP 正文。 | |
| 获取或设置关联 Web 请求实例的执行器。 | |
| 获取 Web 请求的 HTTP 标头。 | |
| 获取或设置用于发出 Web 请求的 Web 请求 HTTP 谓词。 | |
| 获取或设置 Web 请求实例的超时值。 | |
| 获取或设置 Web 请求实例的 URL。 | |
| 获取或设置与 Web 请求实例关联的用户上下文。 |
备注
异步通信层类使用 WebRequest 类发出 Web 请求。一般不在应用程序中直接使用此类型,而是通过使用代理方法,从浏览器调用 Web 服务方法或静态页方法。有关更多信息,请参见向客户端脚本公开 Web 服务。
但是,可以在以下情况下创建和使用 WebRequest 实例:
-
当您希望发出非简单 Web 服务方法调用的网络请求时。
-
当您希望直接设置 HTTP 请求属性时。
-
当您使用基于 Sys.Net.WebRequestExecutor 类的自定义执行器时。
示例
下面的示例演示如何创建 WebRequest 类的实例来发出 GET Web 请求。该示例演示了一个网页以及用来与 WebRequest 类进行交互的客户端脚本。
Visual Basic
<%@ Page Language="VB" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html > <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 > <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();

3万+

被折叠的 条评论
为什么被折叠?



