Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 22743|Отговор: 0

[Източник] Имплементирайте проста HTTP услуга с HttpListener

[Копирай линк]
Публикувано в 2.12.2015 г. 16:56:31 ч. | | |
HttpListener предоставя прост, програмируем и управляем HTTP протоколен слушател. Това ви позволява лесно да предоставяте някои Http услуги, без да се налага да стартирате голяма програма като IIS.

Забележка: Този клас е достъпен само на компютри с операционни системи Windows XP SP2 или Windows Server 2003.

Общите стъпки за използване на Http услуги са следните:

Създайте HTTP слушателен обект и го инициализирайте
Добавете префикса URI, който трябва да се слуша
Започнете да слушате за заявки от клиенти
Обработка на http заявки от клиенти
Изключете HTTP слушателя
Стъпки 3 и 4 могат да бъдат циклирани, за да предоставят услуги, поискани от множество клиенти.

Създаване на HTTP слушателен обект

За да създадете HTTP слушател обект, трябва само да създадете нов обект HttpListener.

HttpListener слушател = нов HttpListener();

Инициализацията изисква следните две стъпки

Можете да добавите диапазона на URL адресите, който да слушате в слушател. Префикси, като използвате следната функция:
слушател. Префикси. Add(префикс) //префикс трябва да завършва на '/'
Обади се на слушателя. Start(), за да свържеш порта и започни да слушаш нуждите на клиента.
Приемане на HTTP заявки

В .NET 2.0 достъпът до обектите за заявка и отговор, използвани от класа HttpListener, се осигурява чрез обекта HttpListenerContext.

Най-лесният начин да получите HttpListenerContext е следният:

HttpListenerContext context = слушател. GetContext();

Този метод ще блокира функцията за повикване, докато не получи клиентска заявка, а ако искате да подобрите скоростта на отговор, можете да използвате слушателя на асинхронния метод. BeginGetContext(), за да получите обекта HttpListenerContext.

Обработка на HTTP заявки

След като получите HttpListenerContext, можете да получите обекта, който представлява заявката на клиента чрез атрибута Request, и обекта, който представлява отговора, който HttpListener ще изпрати на клиента чрез атрибута Response.

HttpListenerRequest request = контекст. Молба;
Отговор на HttpListenerResponse = контекст. Response;

Обектът HttpListenerRequest тук е подобен на използването на Request и Response в Asp и обекта HttpListenerResponse, така че няма да казвам много тук, можете да видите примера по-долу за конкретна употреба.

Изключете HTTP слушателя

Като се обадиш на слушателя. Stop() функцията изключва слушателя и освобождава съответните ресурси

Пример за код:

използвайки System;
използвайки System.Collections.Generic;
използвайки System.Text;

използвайки System.Net;

namespace ConsoleApplication1
{
    Програма на класа
    {
        static void Main(string[] args)
        {
            HttpListener слушател = нов HttpListener();
            слушател. Префикси.Add("http://localhost/"); Добавете диапазона от URL адреси, които трябва да бъдат изслушани
            слушател. Start(); Започнете да слушате при прехвърляне и да получавате заявки от клиенти
            Console.WriteLine("Слушане...");

            Блокира основната функция, докато не получи заявка от клиента
            HttpListenerContext context = слушател. GetContext();
            HttpListenerRequest request = контекст. Молба;
            Отговор на HttpListenerResponse = контекст. Response;

            низова реакцияНиз = низ. Format("<HTML><BODY> {0}</BODY></HTML>", DateTime.Now);
            byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
            Изведи съответната информация на клиента.
            отговор. ContentLength64 = буфер. Дължина;
            System.IO.Stream output = отговор. OutputStream;
            изход. Write(buffer, 0, buffer. Дължина);
            Затворете изходния поток, за да освободите съответните ресурси
            изход. Close();

            слушател. Стоп(); Изключи HttpListener
        }
    }
}

Програмата е сравнително проста – първо се създава HTTP слушател, който да реализира услугата на домейна "http://localhost/time/", когато получи отдалечена заявка, тя преобразува текущото време в изход на низ към клиента и след това затваря слушателя.





Предишен:Проблеми и решения за AJAX кросдомейн повиквания към ASP.NET MVC или WebAPI услуги
Следващ:На 3 декември 2015 г. уебсайтът официално беше преименуван на &quot;Code Farmer Network&quot;, с което беше уведомен!
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com