Вимоги: Деякі сторонні інструменти — це скрипти на Python, я сам займаюся розробкою на C#, не володію самим python, якщо перекладати код Python на C#, це дуже складно, краще використовувати Python для відкриття http-сервісу, я викликаю інтерфейс два і нарешті запускаю сам Python для виконання внутрішнього коду.
HTTPServer — це підклас socketserver.TCPServer. Він створює та прослуховує HTTP-сокети для відправки запитів обробникам.
Документації:Вхід за гіперпосиланням видно.
Порада: http.serverНе рекомендується для виробництва。 Він реалізує лише базові перевірки безпеки.
Код виглядає так:
Використовуйте Python, щоб прослухати порт 10254, увімкнути HTTP-сервіс і спробувати отримати доступ до URL, як показано на наступному рисунку:
Тести доступні, однак, коли я користуюся браузером edge для доступу кілька разів, іноді завждиОчікуєтьсяСтан, після встановлення з'єднання з нативною через telnet і порт 10254, я виявив, що HTTP-сервіс недоступний як із сервера, так і з локального сервера, як показано на зображенні нижче,Відповіді не було 20 хвилин, і врешті-решт я міг лише повторити запит:
Спочатку я думав, що проблема в тому, що немає налаштування «Довжина вмісту», через що браузер не знає, скільки байтів контенту читати, і я не знав, коли читання завершено, але після заголовка відповіді проблема все одно не вирішувалася.
Чи може бути так, що за замовчуванням однопотоковий доступ, дозволяючи доступу лише одному клієнту одночасно?
Переглянувши документацію, я виявив, що існує клас ThreadingHTTPServer, який використовує потоки для обробки запитів за допомогою потоків, і код змінюється на наступний вигляд:
Проблема вирішена, завершено.
|