WebRequest支持不同的浏览器对象,可以在底层使用不同的XMLHttpRquest方式调用Web服务。

Time.aspx

<%@ Page Language="C#" %>

<script runat="server">
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
Response.Write(DateTime.Now.ToUniversalTime());
}
</script>

CallTimeWebRequest.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CallTimeWebRequest.aspx.cs" Inherits="Chap9Project.CallTimeWebRequest" %>

<!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 runat="server">
<title></title>
<script type="text/javascript">
function pageLoad() {
var webRequest = new Sys.Net.WebRequest();
webRequest.set_url("Time.aspx"); webRequest.add_completed(completedHandler);
webRequest.invoke();
} function completedHandler(result, eventArgs) {
if (result.get_responseAvailable()) {
alert(result.get_statusText());
alert(result.get_responseData());
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
</div>
</form>
</body>
</html>

WebRequest默认请求方式是GET,可以使用POST上传数据。

EchoABC.aspx

<%@ Page Language="C#" %>

<script runat="server">
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (Request.Form["abc"] != null)
{
Response.Write(Server.HtmlEncode(Request.Form["abc"]));
}
}
</script>

SetVerb.aspx

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>NetWorking</title>
<script type="text/javascript">
function pageLoad() {
var webRequest = new Sys.Net.WebRequest();
webRequest.set_url("EchoABC.aspx");
webRequest.set_httpVerb("POST");
webRequest.set_body("abc=123");
webRequest.add_completed(completedHandler);
webRequest.invoke();
} function completedHandler(result, eventArgs) {
if (result.get_responseAvailable()) {
alert(result.get_statusText());
alert(result.get_responseData());
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
</div>
</form>
</body>
</html>

WebRequest对象还可以设置超时限制。

TimeOut.aspx

...

function pageLoad(){
...
webRequest.set_timeout(5000);
} function completedHandler(result, eventArgs){
if(result.get_timeOut()){
...
}
if(result.get_responseAvailable()) {
...
}
}

WebRequset传递额外数据

UserContent.aspx

...

function pageLoad(){
...
webRequest.set_userContext('send this data to the callback');
} function completedHandler(result, eventArgs){
if(result.get_responseAvailable()) {
var userContext = result.get_webRequest().get_userContext();
}
}

WebRequest获取即将发出的请求的完整的URL

WebRequest.getResolvedUrl()

WebRequest调用的更多相关文章

  1. WebApi的调用-2.后台调用

    httpClient调用方式 namespace SOA.Common { //httpClient调用WebApi public class HttpClientHelper { public st ...

  2. System.Net.WebRequest.cs

    ylbtech-System.Net.WebRequest.cs 发出对统一资源标识符(URI)的请求.这是一个 abstract 类. 1.返回顶部 1. #region 程序集 System, V ...

  3. Spring MVC源码(三) ----- @RequestBody和@ResponseBody原理解析

    概述 在SpringMVC的使用时,往往会用到@RequestBody和@ResponseBody两个注解,尤其是处理ajax请求必然要使用@ResponseBody注解.这两个注解对应着Contro ...

  4. 黑马毕向东Java基础知识总结

    Java基础知识总结(超级经典) 转自:百度文库 黑马毕向东JAVA基础总结笔记    侵删! 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部 ...

  5. 《果壳中的C# C# 5.0 权威指南》 - 学习笔记

    <果壳中的C# C# 5.0 权威指南> ========== ========== ==========[作者] (美) Joseph Albahari (美) Ben Albahari ...

  6. 接口调用,输出结果为Json格式(ConvertTo-Json),提交参数给URL(WebRequest)

    1.直接输出为json格式: Get-Process -Id $pid | ConvertTo-Json | clip.exe 2.自定义结果为json格式: $serverinfoj = @&quo ...

  7. 详解C#泛型(二) 获取C#中方法的执行时间及其代码注入 详解C#泛型(一) 详解C#委托和事件(二) 详解C#特性和反射(四) 记一次.net core调用SOAP接口遇到的问题 C# WebRequest.Create 锚点“#”字符问题 根据内容来产生一个二维码

    详解C#泛型(二)   一.自定义泛型方法(Generic Method),将类型参数用作参数列表或返回值的类型: void MyFunc<T>() //声明具有一个类型参数的泛型方法 { ...

  8. 【C#】 通过http webRequest方式调用webservice

    上一篇文章写了关于webservice的调用部署等内容,在上一篇文章中,我们通过微软给的方式--添加[WebReference服务引用]来进行调用如下图 那今天,我们说的是通过webrequest的方 ...

  9. C# WebRequest简单调用WebService方法

    //get string res = GetStringByUrl("http://你的地址/WebService.asmx/方法名?参数=1"); //post string r ...

随机推荐

  1. 在DLL中导出另一静态库中的函数

    开发环境: win7_x64.VS2013 应用场景: 动态库A依赖动态库B,而动态库B又使用了静态库C:有些情况下,我们需要将C从B里面导出,然后提供给A使用. 正文: Step1: 1.新建测试静 ...

  2. C: define many functions using predefine..

    /* Defines COUNTER. There must be exactly one such definition at file scope * within a program. */ # ...

  3. 在CDockablePane中嵌入对话框

    CDockablePane类可以用来创建停靠栏.可以将其他控件集成到CDockablePane的派生类中.下文描述如何将对话框集成到CDockablePane中. a)      创建单文档应用程序: ...

  4. PullToRefreshScrollView的上拉加载、下拉刷新

    eclipse中的项目: //注意:此刷新功能是使用的第三方的PullToRefreshScrollView,因此需要导入第三方library作为依赖 步骤:导入第三方library,依赖:点击你的应 ...

  5. 2--OC -- 类的创建与实例化

    2.OC -- 类的创建与实例化   一.OC类的简述 1.OC类分为2个文件:.h文件用于类的声明,.m文件用于实现.h的函数: 2.类是声明使用关键字:@interface.@end : 3.类是 ...

  6. android 定时器总结

    1:handler实现定时器的功能 Handler handler=new Handler(); //立即执行Runnable对象   public final boolean post(Runnab ...

  7. java邮件收发

    http://blog.csdn.net/ycg01/article/details/1394465 java邮件收发 标签: javaimportexceptionnulluserclass 200 ...

  8. int *p[4]与int (*q)[4]的区别

    以上定义涉及两个运算符:“*”(间接引用).“[]”(下标),“[]”的优先级别大于“*”的优先级别. 首先看int *p[4],“[]”的优先级别高,所以它首先是个大小为4的数组,即p[4]:剩下的 ...

  9. 转 spring security的使用

    [转自:http://haohaoxuexi.iteye.com/blog/2154714] 关于登录 目录 1.1     form-login元素介绍 1.1.1    使用自定义登录页面 1.1 ...

  10. mysql链接表,connection string, federated engine

    http://database.51cto.com/art/201011/234561.htm