Cerințe: Unele unelte terțe sunt scripturi python, eu mă ocup de dezvoltare C#, nu sunt priceput în python propriu-zis, dacă traduci codul python în C#, este foarte dificil, este mai bine să folosești python pentru a deschide un serviciu http, apelez interfața doi și, în final, execut python pentru a executa codul intern.
HTTPServer este o subclasă a socketserver.TCPServer. Creează și ascultă socket-uri HTTP pentru a trimite cererile către handleri.
Documentație:Autentificarea cu hyperlink este vizibilă.
Sfat: http.serverNu este recomandat pentru producție。 Implementează doar verificări de securitate de bază.
Codul este următorul:
Folosește Python pentru a asculta portul 10254, activează serviciul HTTP și încearcă să accesezi URL-ul, așa cum este prezentat în figura următoare:
Testele sunt însă accesibile atunci când folosesc browserul Edge pentru a accesa de mai multe ori, uneori întotdeaunaÎn așteptaredupă ce stabilesc o conexiune nativă prin telnet și portul 10254, am constatat că serviciul http nu este accesibil nici de pe server, nici din local, așa cum se arată în imaginea de mai jos,Niciun răspuns timp de 20 de minute, și în final, nu am putut decât să cer din nou:
La început, am crezut că problema este că nu există o setare "Conținut-lungime", ceea ce făcea ca browserul să nu știe câți octeți de conținut să citească, iar eu nu știam când s-a terminat lectura, dar după antetul răspunsului, problema tot nu a fost rezolvată.
Ar putea fi ca implicitul să fie single-threaded, permițând accesul doar unui singur client la un moment dat?
Uitându-mă la documentație, am descoperit că există o clasă ThreadingHTTPServer, care folosește firele pentru a procesa cererile folosind fire, iar codul este schimbat astfel:
Problemă rezolvată, terminată.
|