Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 12121|Yanıt: 0

[Kaynak] Python, http.server kullanarak bir http servisi açıyor

[Bağlantıyı kopyala]
Yayınlandı 2.12.2020 15:55:03 | | | |
Gereksinimler: Bazı üçüncü parti araçlar python scriptleridir, ben C# geliştirme yapıyorum, python'da yetkin değilim, python kodunu C# koduna çevirirseniz çok zor, python kullanarak bir HTTP servisi açmak daha iyidir, ben interface two'yu çağırıyorum ve sonunda python'u kendisi çalıştırıp dahili kodunu çalıştırmak daha iyidir.

HTTPServer, socketserver.TCPServer'in bir alt sınıfıdır. HTTP soketleri oluşturup işleyicilere istekleri göndermek için dinler.

Belge:Bağlantı girişi görünür.

İpucu: http.serverÜretim için önerilmiyor。 Sadece temel güvenlik kontrollerini uygular.

Kod şöyledir:


Python kullanarak 10254 portunu dinleyin, HTTP servisini etkinleştirin ve URL'ye erişmeye çalışın, aşağıdaki şekilde gösterilmiştir:



Ancak testler, edge tarayıcıyı birden fazla kez kullandığımda, bazen her zaman erişilebilirBeklemeYerel bağlantıdan telnet ve port 10254 üzerinden kurduktan sonra, HTTP servisinin hem sunucudan hem de yerel bağlantıdan erişilemediğini fark ettim, aşağıdaki resimde gösterildiği gibi,20 dakika boyunca cevap yok, ve sonunda sadece tekrar talep edebildim:


Başta, sorunun "İçerik Uzunluğu" ayarının olmaması olduğunu düşündüm, bu yüzden tarayıcı kaç bayt içerik okunacağını bilmiyordu ve okumanın ne zaman tamamlandığını bilmiyordum, ama yanıt başlığından sonra sorun hâlâ çözülmemişti.

Varsayılan tek iş parçacıklı olabilir mi, aynı anda yalnızca bir istemciye erişim sağlayabilir?

Dokümantasyona baktığımda, ThreadingHTTPServer sınıfı olduğunu gördüm; bu sınıf iş parçacıklarını iplikler kullanarak isteği işleyerek ve kod şu şekilde değiştirilir:

Sorun çözüldü, bitti.






Önceki:JSC kullanarak C# çağrıları için JavaScript'te bir dll oluşturun
Önümüzdeki:Python, pip indirmeleri hızlandırmak için ayna istasyonları kullanır
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com