Веб программирование

Http обработчик

 
 

Это статья для разработчиков сайтов ASP.NET и в ней я расскажу что такое Http обработчик и как его написать.

Часть 1. Основы.

Http обработчик - это класс, который генерирует HTML страницы, и обрабатывает запросы которые можно отправить через строку адреса или, что встречается чаще запрос отправляется программой или через JavaScript код.

Вообщем пишется он так:

namespace WebApplication1
{
    public class MyHandler : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            
        }

        public bool IsReusable { get { return true; } }
    }
}


Здесь видно, что класс наследуется от интерфейса IHttpHandler и имеются обязательные свойство IsReusable и метод ProcessRequest, в котором обрабатывается запрос.

Теперь перейдем к обработке запроса.

public void ProcessRequest(HttpContext context)
{
    context.Response.Write("<h1>Сейчас" + DateTime.Now.ToString() + "</h1>");
}

Это очень простой код, который выводит крупным текстом дату и время.

Часть 2. Обработка запросов от программ, JavaScript кода и чтение переданных параметров.

В обработчик так же можно передать параметры через URL запрос, для этого нужно ввести http://ИмяСайта/ПутьКОбработчику?ИмяПараметра1=Значение1&ИмяПараметра2=Значение2 и т. д.

public void ProcessRequest(HttpContext context)
{
    String value = context.Request.QueryString["value"];
    Char[] chars = value.ToCharArray();
    Array.Sort(chars);
    value = chars.Aggregate("", (current, c) => current + c);
context.Response.Write(value); }

Этот код выполняет сортировку по возрастанию символов переданных в параметре value и возвращает отсортированную строку. Например если отправить запрос  http://localhost/MyHandler?value=Hello, world!, то получим  "!,Hdellloorw"

Часть 3. Регистрация обработчика.

Для регистрации обработчика его нужно поместить в каталог App_Code если вы разрабатываете веб-сайт, а если веб-проект, то оставить в корне. Затем нужно отредактировать файл Web.config, добавив туда

<system.webServer>

    <handlers>

        <add verb="*" path="путь в адресной строке" type="пространство имен.имя класса"/>

    </handlers>

</system.webServer>


Есть вопросы? Спроси на нашем форуме!!
Нет комментариев

Оставлять комментарии можно только зарегистрированным




Предупреждение: Вся информация представлена исключительно в образовательных целях.
Ни авторы, ни администрация не несут ответственности в случае ее использования в противозаконных целях.