Persyaratan: Beberapa alat pihak ketiga adalah skrip python, saya melakukan pengembangan C# sendiri, saya tidak mahir dalam python itu sendiri, jika Anda menerjemahkan kode python ke dalam kode C#, itu sangat sulit, lebih baik menggunakan python untuk membuka layanan http, saya memanggil antarmuka dua, dan akhirnya mengeksekusi python itu sendiri untuk mengeksekusi kode internalnya.
HTTPServer adalah subkelas dari socketserver.TCPServer. Ini membuat dan mendengarkan soket HTTP untuk mengirimkan permintaan ke penangan.
Dokumentasi:Login hyperlink terlihat.
Tip: http.serverTidak direkomendasikan untuk produksi。 Ini hanya menerapkan pemeriksaan keamanan dasar.
Kodenya adalah sebagai berikut:
Gunakan Python untuk mendengarkan port 10254, aktifkan layanan HTTP, dan coba akses URL, seperti yang ditunjukkan pada gambar berikut:
Namun, pengujian dapat diakses ketika saya menggunakan browser tepi untuk mengakses beberapa kali, terkadang selalutertundastate, setelah saya membuat koneksi dari native melalui telnet dan port 10254, saya menemukan bahwa layanan http tidak dapat diakses dari server dan lokal, seperti yang ditunjukkan pada gambar di bawah ini,Tidak ada tanggapan selama 20 menit, dan pada akhirnya, saya hanya bisa meminta kembali:
Pada awalnya, saya pikir itu adalah masalah bahwa tidak ada pengaturan "Panjang-Konten", menyebabkan browser tidak tahu berapa byte konten yang harus dibaca, dan saya tidak tahu kapan pembacaan selesai, tetapi setelah header respons, masalahnya masih belum terpecahkan.
Mungkinkah defaultnya adalah single-threaded, memungkinkan hanya satu klien untuk mengakses pada satu waktu?
Melihat dokumentasi, saya menemukan bahwa ada kelas ThreadingHTTPServer, yang menggunakan utas untuk memproses permintaan dengan menggunakan utas, dan kode diubah menjadi sebagai berikut:
Masalah terpecahkan, selesai.
|