Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 22743|Risposta: 0

[Fonte] Implementa un semplice servizio Http con HttpListener

[Copiato link]
Pubblicato su 02/12/2015 16:56:31 | | |
HttpListener fornisce un listener di protocollo HTTP semplice, programmabile e controllabile. Ti permette di fornire facilmente alcuni servizi Http senza dover avviare un grande programma di servizi come IIS.

Nota: Questa classe è disponibile solo su computer che utilizzano sistemi operativi Windows XP SP2 o Windows Server 2003.

I passaggi generali per utilizzare i servizi Http sono i seguenti:

Crea un oggetto ascoltatore HTTP e inizializzalo
Aggiungi il prefisso URI che deve essere ascoltato
Inizia ad ascoltare le richieste dei clienti
Gestire le richieste Http dai client
Disattiva l'ascoltatore HTTP
I passaggi 3 e 4 possono essere ciclati per fornire servizi richiesti da più clienti.

Crea un oggetto listener HTTP

Per creare un oggetto listener HTTP, basta creare un nuovo oggetto HttpListener.

HttpListener listener = nuovo HttpListener();

L'inizializzazione richiede i seguenti due passaggi

Puoi aggiungere l'intervallo URL da ascoltare in listener. Prefissi utilizzando la seguente funzione:
ascoltatore. Prefissi. Aggiungi(prefisso) //prefisso deve terminare con '/'
Chiama l'ascoltatore. Inizia a assegnare la porta e inizia ad ascoltare le esigenze del cliente.
Accetta richieste HTTP

In .net 2.0, l'accesso agli oggetti richiesta e risposta usati dalla classe HttpListener è fornito tramite l'oggetto HttpListenerContext.

Il modo più semplice per ottenere HttpListenerContext è il seguente:

HttpListenerContext = ascoltatore. GetContext();

Questo metodo bloccherà la funzione chiamata fino a quando non riceverà una richiesta cliente e, se vuoi migliorare la velocità di risposta, puoi usare l'ascoltatore asincrono. BeginGetContext() per ottenere l'oggetto HttpListenerContext.

Gestione delle richieste HTTP

Dopo aver ottenuto l'HttpListenerContext, puoi ottenere l'oggetto che rappresenta la richiesta del client tramite l'attributo Request e l'oggetto che rappresenta la risposta che l'HttpListener invierà al client tramite l'attributo Response.

HttpListenerRequest request = contesto. Richiesta;
HttpListenerResponse risposta = contesto. Risposta;

L'oggetto HttpListenerRequest qui è simile all'uso di Request and Response in Asp e HttpListenerResponse, quindi non dirò molto qui, puoi vedere l'esempio qui sotto per un uso specifico.

Disattiva l'ascoltatore HTTP

Chiamando l'ascoltatore. Stop() serve a spegnere l'ascoltatore e liberare le risorse rilevanti

Esempio di codice:

usando Sistema;
usando System.Collections.Generic;
usando System.Text;

usando System.Net;

namespace ConsoleApplication1
{
    Programma di classe
    {
        vuoto statico Main(string[] args)
        {
            HttpListener listener = nuovo HttpListener();
            ascoltatore. Prefissi. Add("http://localhost/"); Aggiungi la gamma di URL da ascoltare
            ascoltatore. Start(); Inizia ad ascoltare sulla portazione e ricevi richieste dal client
            Console.WriteLine("Ascolto...");

            Blocca la funzione principale fino a quando non riceve una richiesta del cliente
            HttpListenerContext = ascoltatore. GetContext();
            HttpListenerRequest request = contesto. Richiesta;
            HttpListenerResponse risposta = contesto. Risposta;

            stringstring responseString = string. Format("<HTML><BODY> {0}</BODY></HTML>", DateTime.Now);
            byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
            Invia le informazioni corrispondenti al client.
            risposta. ContentLength64 = buffer. Lunghezza;
            System.IO.Stream output = risposta. OutputStream;
            output. Write(buffer, 0, buffer. Lunghezza);
            Chiudi il flusso di output per liberare le risorse corrispondenti
            output. Close();

            ascoltatore. Stop(); Disattiva HttpListener
        }
    }
}

Il programma è relativamente semplice: prima crea un listener HTTP per implementare il servizio del dominio "http://localhost/time/", quando riceve una richiesta remota, converte l'ora corrente in un output di stringa al client e poi chiude l'ascoltatore.





Precedente:Problemi e soluzioni per le chiamate AJAX cross-domain a ASP.NET servizi MVC o WebAPI
Prossimo:Il 3 dicembre 2015, il sito web è stato ufficialmente rinominato &quot;Code Farmer Network&quot;, da qui notificato!
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com