Kamis, 08 Agustus 2013

How to use HTTP Handlers in ASP.NET

HTTP Handlers, as the name suggest, handle user requests for  Web application resources. They are the backbone of the request-response model of web applications. For each user request type, there is a specific event handler to handle the request and send back the corresponding response object.
Each user request to the IIS Web Server flows through the HTTP pipeline, which refers to a series of components (HTTP Modules and HTTP Handlers) to process the request. HTTP Modules act as filters to process the request as it passes through the HTTP pipeline. The request, after passing through the HTTP Modules, is assigned to an HTTP Handlers that determines the response of the server to the user request. The response then passes through the HTTP Modules once again and sends back to the server.

You can define HTTP Handlers in the <httpHandlers> section of a configuration file. The <add> element tag is used to add new handlers and the <remove> elements tag is used to remove existing handlers. To create an HTTP Handlers, you need to define a class that implements an IHttpHandler interface. The two methods of the IHttpHandler interface are:

ProcessRequest ( ) : Invoked when a user request is received. It processes the request using the HttpContext object, which is passed as a parameters.
IsReusable ( ) - Determines whether the HTTP Handler object, accessed using the Processrequest ( ) method , can be reused. The HTTP handler object can only be reused if the IsReusable ( ) method returns a true value. The object is discarded when the HTTP Handlers object returns a false value.

Example of HTTP Handlers in ASP.NET

First need to create a class file CustomHandler.cs



using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// Summary description for CustomHandler
/// </summary>
namespace CustomHTTP
{
public class CustomHandler : IHttpHandler
{

    public bool IsReusable()
    {
        return true;
    }
    public void ProcessRequest(System.Web.HttpContext context)
    {
        HttpResponse response = context.Response;
        response.Write("<html><body><h2>Example of HTTP Handlers </body></html>");

    }
}
}
Add the code in the section of the web.config file


 <httpHandlers>
      <add verb ="*" path ="CustomHttp.test" type ="CustomHTTP.CustomHandler"/>
 
 
    </httpHandlers>

Tidak ada komentar:

Posting Komentar