下面就开始具体的HTTP处理程序的学习
首先要介绍两个接口,实际上HTTP处理程序只不过是实现该接口的托管类。
同步接口 IHttpHandler,这个接口只有两个成员
公共属性 IsReusable 获得一个布尔值,指示另一个请求是否可以使用该HTTP处理程序的实例
如果 IHttpHandler 实例可再次使用,则为 true;否则为 false。
公共方法 ProcessRequest 该方法 处理Http请求。参数 HttpContext对象,它提供对用于为 HTTP 请求提供服务的内部服务器对象(如 Request、Response、Session 和 Server)的引用。
下面当然是进行一个helloword级别的demo啦
第一步 自定义一个实现了IHttpHandler的类
第二步
向web.config注册信息
add节点的属性
verb 表示受支持的一些Http动词列表 如GET,PUT,POST,通配符(*)
path 表示程序需要处理的资源 如:*.aspx,a url
type 表示一个逗号隔离的类/程序集组合,如果没有程序集可以省略。
在完成了以上2步之后我们浏览Default.aspx时,虽然我们没有对页面作任何操作但是页面显示效果如下

异步接口 IHttpAsycHandler,该接口同样也只有两个成员
公共方法
BeginProcessRequest 初始化一个对指定Http处理程序的异步调用
EndProcessRequest 终止异步调用
接下来的文章中我会介绍一些负责详细的例子。
首先要介绍两个接口,实际上HTTP处理程序只不过是实现该接口的托管类。
同步接口 IHttpHandler,这个接口只有两个成员
公共属性 IsReusable 获得一个布尔值,指示另一个请求是否可以使用该HTTP处理程序的实例
如果 IHttpHandler 实例可再次使用,则为 true;否则为 false。
公共方法 ProcessRequest 该方法 处理Http请求。参数 HttpContext对象,它提供对用于为 HTTP 请求提供服务的内部服务器对象(如 Request、Response、Session 和 Server)的引用。
下面当然是进行一个helloword级别的demo啦

第一步 自定义一个实现了IHttpHandler的类
using System.Web;
namespace WebApplication1
{
public class SimpleHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.Write("<H1>This is an HttpHandler Test.</H1>");
context.Response.Write("<p>Your Browser:</p>");
context.Response.Write("Type: " + context.Request.Browser.Type + "<br>");
context.Response.Write("Version: " + context.Request.Browser.Version);
}
public bool IsReusable
{
get { return true; }
}
}
}
可以看见该类只是单纯的实现了IHttpHandler接口,做的事情就是让相应流中写出浏览器版本号之类的信息namespace WebApplication1
{
public class SimpleHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.Write("<H1>This is an HttpHandler Test.</H1>");
context.Response.Write("<p>Your Browser:</p>");
context.Response.Write("Type: " + context.Request.Browser.Type + "<br>");
context.Response.Write("Version: " + context.Request.Browser.Version);
}
public bool IsReusable
{
get { return true; }
}
}
}
第二步
向web.config注册信息
<httpHandlers>
<add verb="*" path="Default.aspx" type="WebApplication1.SimpleHandler"/>
</httpHandlers>
<add verb="*" path="Default.aspx" type="WebApplication1.SimpleHandler"/>
</httpHandlers>
add节点的属性
verb 表示受支持的一些Http动词列表 如GET,PUT,POST,通配符(*)
path 表示程序需要处理的资源 如:*.aspx,a url
type 表示一个逗号隔离的类/程序集组合,如果没有程序集可以省略。
在完成了以上2步之后我们浏览Default.aspx时,虽然我们没有对页面作任何操作但是页面显示效果如下
异步接口 IHttpAsycHandler,该接口同样也只有两个成员
公共方法
BeginProcessRequest 初始化一个对指定Http处理程序的异步调用
IAsyncResult BeginProcessRequest (
HttpContext context,//一个HttpContext对象
AsyncCallback cb,//异步方法完成时要调用的委托
Object extraData//处理该请求所需的所有额外数据
)
HttpContext context,//一个HttpContext对象
AsyncCallback cb,//异步方法完成时要调用的委托
Object extraData//处理该请求所需的所有额外数据
)
EndProcessRequest 终止异步调用
void EndProcessRequest (
IAsyncResult result//包含有关进程状态信息的IAsyncResult
)
IAsyncResult result//包含有关进程状态信息的IAsyncResult
)
接下来的文章中我会介绍一些负责详细的例子。
浙公网安备 33010602011771号