Wymagania: Niektóre narzędzia firm trzecich to skrypty Pythona, sam tworzę C#, nie jestem biegły w samym Pythonie, jeśli przetłumaczysz kod pythona na C#, jest to bardzo trudne, lepiej użyć Pythona do otwarcia usługi http, nazywam interfejs dwa, a na końcu uruchomić sam Python, aby uruchomić jego wewnętrzny kod.
HTTPServer to podklasa socketserver.TCPServer. Tworzy i nasłuchuje gniazd HTTP, aby wysyłać żądania do obsługiwaczy.
Dokumentacja:Logowanie do linku jest widoczne.
Wskazówka: http.serverNie zalecane do produkcji。 Implementuje jedynie podstawowe kontrole bezpieczeństwa.
Kod jest następujący:
Użyj Pythona, aby nasłuchiwać portu 10254, włączyć usługę HTTP i spróbować uzyskać dostęp do URL, jak pokazano na poniższym rysunku:
Testy są jednak dostępne, gdy używam przeglądarki edge do wielokrotnego dostępu, czasem zawszeW trakcie oczekiwaniapo nawiązaniu połączenia z natywnym serwerem przez telnet i port 10254, okazało się, że usługa http nie jest dostępna zarówno z serwera, jak i lokalnie, jak pokazano na poniższym obrazku,Brak odpowiedzi przez 20 minut, i ostatecznie mogłem tylko ponownie poprosić:
Na początku myślałem, że problem polega na braku ustawienia "Content-Length", przez co przeglądarka nie wie, ile bajtów treści ma przeczytać, i nie wiedziałem, kiedy odczyt został zakończony, ale po nagłówku odpowiedzi problem nadal nie został rozwiązany.
Czy to możliwe, że domyślna jest jednowątkowa, pozwalając tylko jednemu klientowi na dostęp w danym momencie?
Przeglądając dokumentację, znalazłem klasę ThreadingHTTPServer, która wykorzystuje wątki do przetwarzania żądań za pomocą wątków, a kod został zmieniony na następujący:
Problem rozwiązany, skończony.
|