Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 22743|Відповідь: 0

[Джерело] Реалізуйте простий HTTP-сервіс за допомогою HttpListener

[Копіювати посилання]
Опубліковано 02.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 listener = новий HttpListener();

Ініціалізація вимагає наступних двох кроків

Ви можете додати діапазон URL для прослуховування в слухачі. Префікси за допомогою наступної функції:
слухач. Префікси.Add(prefix) //префікс має закінчуватися на '/'
Зателефонуйте слухачу. Start(), щоб прив'язати порт і почати слухати потреби клієнта.
Приймати HTTP-запити

У .net 2.0 доступ до об'єктів запиту та відповіді, які використовує клас HttpListener, здійснюється через об'єкт HttpListenerContext.

Найпростіший спосіб отримати HttpListenerContext такий:

HttpListenerContext context = слухач. GetContext();

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

Обробка HTTP-запитів

Після отримання HttpListenerContext ви можете отримати об'єкт, який представляє запит клієнта через атрибут Request, і об'єкт, який представляє відповідь, яку HttpListener надішле клієнту через атрибут Response.

HttpListenerRequest request = контекст. Запит;
Відповідь HttpListenerResponse = контекст. Відповідь;

Об'єкт HttpListenerRequest тут схожий на використання Request and Response в Asp та об'єктах HttpListenerResponse, тому я не буду багато розповідати, ви можете переглянути приклад нижче для конкретного використання.

Вимкніть HTTP-слухач

Зателефонувавши слухачу. Stop() функція вимикає слухач і звільняє відповідні ресурси

Приклад коду:

використовуючи System;
з використанням System.Collections.Generic;
використовуючи System.Text;

використовуючи System.Net;

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

            Блокує основну функцію до отримання запиту клієнта
            HttpListenerContext context = слухач. GetContext();
            HttpListenerRequest request = контекст. Запит;
            Відповідь HttpListenerResponse = контекст. Відповідь;

            відповідь рядкаРядок = рядок. Format("<HTML><BODY> {0}</BODY></HTML>", DateTime.Now);
            byte[] buffer = System.Text.Encoding.UTF8.GetBytes(відповідьРядок);
            Виведіть відповідну інформацію клієнту.
            Відповідь. ContentLength64 = буфер. Довжина;
            System.IO.Stream output = відповідь. OutputStream;
            Вихід. Write(buffer, 0, buffer. Довжина);
            Закрийте вихідний потік, щоб звільнити відповідні ресурси
            Вихід. Близько();

            слухач. Stop(); Вимкніть HttpListener
        }
    }
}

Програма досить проста: спочатку створіть HTTP-слухач для реалізації сервісу домену "http://localhost/time/", коли вона отримує віддалений запит, вона конвертує поточний час у рядковий вивід для клієнта, а потім закриває слухач.





Попередній:Проблеми та рішення для крос-доменних викликів AJAX до ASP.NET MVC або WebAPI сервісів
Наступний:3 грудня 2015 року сайт офіційно було перейменовано на «Code Farmer Network» і офіційно повідомляється!
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com