Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 22743|Répondre: 0

[Source] Implémentez un service Http simple avec HttpListener

[Copié le lien]
Publié sur 02/12/2015 16:56:31 | | |
HttpListener fournit un écouteur de protocole HTTP simple, programmable et contrôlable. Cela permet de fournir facilement certains services Http sans avoir à lancer un grand programme de services comme IIS.

Note : Cette classe est uniquement disponible sur les ordinateurs fonctionnant sous Windows XP SP2 ou Windows Server 2003.

Les étapes générales pour utiliser les services Http sont les suivantes :

Créez un objet écouteur HTTP et initialisez-le
Ajoutez le préfixe URI à écouter
Commencez à écouter les demandes des clients
Gérer les requêtes Http des clients
Désactivez l’écouteur HTTP
Les étapes 3 et 4 peuvent être cyclées pour fournir des services demandés par plusieurs clients.

Créer un objet d’écoute HTTP

Pour créer un objet écouteur HTTP, il suffit de créer un nouvel objet HttpListener.

HttpListener auditeur = nouveau HttpListener() ;

L’initialisation nécessite les deux étapes suivantes

Vous pouvez ajouter la plage d’URL à écouter dans listener. Préfixes en utilisant la fonction suivante :
Auditeur. Préfixes.Add(préfixe) //préfixe doit se terminer par '/'
Appelle l’auditeur. Commencez () à lier le port et commencez à écouter les besoins du client.
Accepter les requêtes HTTP

Dans .net 2.0, l’accès aux objets requête et réponse utilisés par la classe HttpListener est fourni via l’objet HttpListenerContext.

La façon la plus simple d’obtenir l’HttpListenerContext est la suivante :

HttpListenerContext = auditeur. GetContext() ;

Cette méthode bloquera la fonction d’appel jusqu’à la réception d’une requête client, et si vous souhaitez améliorer la vitesse de réponse, vous pouvez utiliser l’écouteur asynchrone de la méthode. BeginGetContext() pour obtenir l’objet HttpListenerContext.

Gérer les requêtes HTTP

Après avoir obtenu le HttpListenerContext, vous pouvez obtenir l’objet qui représente la requête du client via l’attribut Request et l’objet qui représente la réponse que l’HttpListener enverra au client via l’attribut Response.

HttpListenerRequest request request = contexte. Demande ;
HttpListenerResponse réponse = contexte. Réponse ;

L’objet HttpListenerRequest ici est similaire à l’utilisation de Request and Response dans les objets Asp et HttpListenerResponse, donc je n’en dirai pas beaucoup ici, vous pouvez voir l’exemple ci-dessous pour un usage spécifique.

Désactivez l’écouteur HTTP

En appelant l’auditeur. Stop() pour éteindre l’auditeur et libérer les ressources pertinentes

Exemple de code :

utilisant System ;
utilisant System.Collections.Generic ;
en utilisant System.Text ;

utilisant System.Net ;

espace de noms ConsoleApplication1
{
    Programme de la classe
    {
        vide statique Main(string[] args)
        {
            HttpListener auditeur = nouveau HttpListener() ;
            Auditeur. Préfixes. Add(« http://localhost/ ») ; Ajoutez la plage d’URL à écouter
            Auditeur. Start() ; Commencez à écouter sur le portage et à recevoir les demandes des clients
            Console.WriteLine(« Écoute... ») ;

            Bloque la fonction principale jusqu’à la réception d’une requête client
            HttpListenerContext = auditeur. GetContext() ;
            HttpListenerRequest request request = contexte. Demande ;
            HttpListenerResponse réponse = contexte. Réponse ;

            réponse chaîne Chaîne = chaîne. Format( »<HTML><BODY> {0}</BODY></HTML> », DateTime.Now) ;
            octet[] tampon = System.Text.Encoding.UTF8.GetBytes(responseString) ;
            Envoyez les informations correspondantes au client.
            Réponse. ContentLength64 = tampon. Longueur ;
            System.IO.Stream sortie = réponse. OutputStream ;
            Sortie. Write(buffer, 0, buffer. Length) ;
            Fermez le flux de sortie pour libérer les ressources correspondantes
            Sortie. Close() ;

            Auditeur. Stop() ; Désactivez HttpListener
        }
    }
}

Le programme est relativement simple : d’abord créer un écouteur HTTP pour implémenter le service du domaine « http://localhost/time/ », lorsqu’il reçoit une requête distante, il convertit l’heure actuelle en une chaîne de sortie vers le client, puis ferme l’écouteur.





Précédent:Problèmes et solutions pour les appels AJAX inter-domaines vers ASP.NET services MVC ou WebAPI
Prochain:Le 3 décembre 2015, le site web a officiellement été renommé « Code Farmer Network », désormais notifié !
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com