Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 12121|Απάντηση: 0

[Πηγή] Η Python χρησιμοποιεί το http.server για να ανοίξει μια υπηρεσία http

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 2/12/2020 3:55:03 μ.μ. | | | |
απαιτήσεις: Ορισμένα εργαλεία τρίτων είναι σενάρια python, κάνω μόνος μου ανάπτυξη C#, δεν είμαι ικανός στην ίδια την python, αν μεταφράσετε κώδικα python σε κώδικα C#, είναι πολύ δύσκολο, είναι καλύτερο να χρησιμοποιήσετε python για να ανοίξετε μια υπηρεσία http, καλώ τη διεπαφή δύο και, τέλος, εκτελέστε την ίδια την python για να εκτελέσετε τον εσωτερικό της κώδικα.

Το HTTPServer είναι μια υποκλάση του socketserver.TCPServer. Δημιουργεί και ακούει υποδοχές HTTP για την αποστολή αιτημάτων σε χειριστές.

Τεκμηρίωση:Η σύνδεση με υπερσύνδεσμο είναι ορατή.

Συμβουλή: http.serverΔεν συνιστάται για παραγωγή。 Εφαρμόζει μόνο βασικούς ελέγχους ασφαλείας.

Ο κωδικός έχει ως εξής:


Χρησιμοποιήστε την Python για να ακούσετε τη θύρα 10254, να ενεργοποιήσετε την υπηρεσία HTTP και να προσπαθήσετε να αποκτήσετε πρόσβαση στη διεύθυνση URL, όπως φαίνεται στην παρακάτω εικόνα:



Οι δοκιμές είναι προσβάσιμες, ωστόσο, όταν χρησιμοποιώ το πρόγραμμα περιήγησης edge για πρόσβαση πολλές φορές, μερικές φορές πάντασε εκκρεμότηταstate, αφού δημιουργήσω μια σύνδεση από το native μέσω telnet και θύρας 10254, διαπίστωσα ότι η υπηρεσία http δεν είναι προσβάσιμη τόσο από τον διακομιστή όσο και από τον τοπικό, όπως φαίνεται στην παρακάτω εικόνα,Καμία απάντηση για 20 λεπτά, και στο τέλος, δεν μπορούσα παρά να ζητήσω ξανά:


Στην αρχή, νόμιζα ότι ήταν πρόβλημα το γεγονός ότι δεν υπήρχε ρύθμιση "Content-Length", με αποτέλεσμα το πρόγραμμα περιήγησης να μην γνωρίζει πόσα byte περιεχομένου να διαβάσει και δεν ήξερα πότε ολοκληρώθηκε η ανάγνωση, αλλά μετά την κεφαλίδα απόκρισης, το πρόβλημα δεν λύθηκε ακόμα.

Θα μπορούσε να είναι ότι η προεπιλογή είναι single-threaded, επιτρέποντας μόνο σε έναν πελάτη να έχει πρόσβαση κάθε φορά;

Κοιτάζοντας την τεκμηρίωση, διαπίστωσα ότι υπάρχει μια κλάση ThreadingHTTPServer, η οποία χρησιμοποιεί νήματα για την επεξεργασία αιτημάτων χρησιμοποιώντας νήματα και ο κώδικας αλλάζει ως εξής:

Το πρόβλημα λύθηκε, τελείωσε.






Προηγούμενος:Χρησιμοποιήστε το JSC για να δημιουργήσετε ένα dll σε JavaScript για κλήσεις C#
Επόμενος:Η Python χρησιμοποιεί σταθμούς καθρέφτη για να επιταχύνει τις λήψεις PIP
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com