Exigences : Certains outils tiers sont des scripts Python, je développe moi-même du C#, je ne maîtrise pas Python lui-même, si vous traduisez du code Python en C#, c’est très difficile, il vaut mieux utiliser Python pour ouvrir un service http, j’appelle l’interface deux, et enfin j’exécute Python lui-même pour exécuter son code interne.
HTTPServer est une sous-classe de socketserver.TCPServer. Il crée et écoute des sockets HTTP pour envoyer les requêtes aux gestionnaires.
Documentation:La connexion hyperlientérée est visible.
Conseil : http.serverNon recommandé pour la production。 Il ne met en place que des contrôles de sécurité basiques.
Le code est le suivant :
Utilisez Python pour écouter le port 10254, activez le service HTTP et essayez d’accéder à l’URL, comme montré dans la figure suivante :
Les tests sont cependant accessibles lorsque j’utilise le navigateur Edge pour accéder plusieurs fois, parfois toujoursEn attenteÉtat, après avoir établi une connexion depuis le natif via telnet et le port 10254, j’ai constaté que le service http n’est pas accessible ni depuis le serveur ni depuis le local, comme montré sur l’image ci-dessous,Aucune réponse pendant 20 minutes, et au final, je ne pouvais que redemander :
Au début, je pensais que c’était un problème parce qu’il n’y avait pas de réglage « Longueur du contenu », ce qui empêchait le navigateur de lire combien d’octets de contenu il fallait, et je ne savais pas quand la lecture était terminée, mais après l’en-tête de la réponse, le problème n’était toujours pas résolu.
Se pourrait-il que le défaut soit monothread, ne permettant qu’un seul client d’accéder à la fois ?
En consultant la documentation, j’ai trouvé qu’il existe une classe ThreadingHTTPServer, qui utilise des threads pour traiter les requêtes en utilisant des threads, et le code est modifié pour suivre :
Problème résolu, terminé.
|