要创建自定义处理程序,可以创建一个实现IHttpHandler接口的类。
该类有两个重要的参数:IsResuable属性和ProcessRequest方法。如果处理程序实例可以在不同的请求中重用,IsResuable就返回true。ProcessRequest方法接收带参数的HttpContext。HttpContext允许接收来自调用者的请求信息,并发回一个响应。
下面的实例主要是客户端请求url:http://localhost:9287/CallCustomHandler 然后调用处理程序返回一个html。
在VS中新建一个空网站:WebHandler,如图。
新建一个类库SampleHandler添加类CustomHandler
CustomHandler类的代码如下:
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中配置
<system.webServer> <handlers> <add name="CustomHandler" verb="*" path="CallCustomHandler" type="SampleHandler.CustomHandler,SampleHandler"/> </handlers> </system.webServer>
运行效果图为