要创建自定义处理程序,可以创建一个实现IHttpHandler接口的类。
该类有两个重要的参数:IsResuable属性和ProcessRequest方法。如果处理程序实例可以在不同的请求中重用,IsResuable就返回true。ProcessRequest方法接收带参数的HttpContext。HttpContext允许接收来自调用者的请求信息,并发回一个响应。
下面的实例主要是客户端请求url:http://localhost:9287/CallCustomHandler 然后调用处理程序返回一个html。
在VS中新建一个空网站:WebHandler,如图。
新建一个类库SampleHandler添加类CustomHandler
CustomHandler类的代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Threading.Tasks;
using
System.Web;
namespace
SampleHandler
{
public
class
CustomHandler:IHttpHandler
{
private
string
responseString =
@"
<DOCTYPE HTML>
<html>
<head>
<meta charset=""UTF-8"">
<title>Costom Handler</title>
</head>
<body>
<h1>Hello from cumstom handler</h1>
<h1>{0}</h1>
<div>{1}</div>
</body>
</html>"
;
public
bool
IsReusable
{
get
{
return
true
;
}
}
public
void
ProcessRequest(HttpContext context)
{
HttpRequest request = context.Request;
HttpResponse response = context.Response;
response.ContentType =
"text/html"
;
response.Write(
string
.Format(responseString, request.UserHostAddress, request.UserAgent));
}
}
}
|
在WebHandler跟目录下Web.config中配置
1
2
3
4
5
|
<system.webServer>
<handlers>
<add name=
"CustomHandler"
verb=
"*"
path=
"CallCustomHandler"
type=
"SampleHandler.CustomHandler,SampleHandler"
/>
</handlers>
</system.webServer>
|
运行效果图为