Posted in

PowerShell kullanarak basit Web Sunucusu oluşturma

powershell web server
powershell web server

Burada temel bir web sunucusu oluşturmak için .net nesnelerinden System.Net.HttpListener kullanıyorum. Bu nesne, tarayıcıda web sayfaları kodunu gösterme yeteneğine sahiptir.

powershell web server

Öncelikle html kodumuzu yazalım.

$url = ‘http://localhost:8080/'
$htmlCode = @”
<!DOCTYPE html> <html> <body>
<h1>PowerShell Web Server</h1>
<p>Example Web Server with Http Listener</p></br>
<p>Resul COŞKUN</p>
<p>resulcoskun.com.tr</p>
</body> </html>
“@
$htmlListener = New-Object System.Net.HttpListener
$htmlListener.Prefixes.Add($url)
$htmlListener.Start()
$httpContext = $htmlListener.GetContext()
$httpResponse = $httpContext.Response

Ardından gelen http isteklerinde html kodumuzu UTF-8 formatına dönüştürerek yayınlıyoruz. Sürekli hizmet veren web sayfaları için burada while döngüsü kullanabilirsiniz.

$buffer = [Text.Encoding]::UTF8.GetBytes($htmlCode)
$httpResponse.ContentLength64 = $buffer.length
$httpResponse.OutputStream.Write($buffer, 0, $buffer.length)

Son olarak servisi durdurmak için aşağıdaki komutu kullanabilirsiniz.

$httpResponse.Close()
$htmlListener.Stop()

3 thoughts on “PowerShell kullanarak basit Web Sunucusu oluşturma

  1. Özellikle HTML içeriğini UTF-8’e dönüştürüp ContentLength64 ayarlamanız, tarayıcıda karakter sorunu yaşamamanızı sağlıyor. Ayrıca while döngüsü ekleyerek sunucuyu sürekli açık tutmak, test ortamları için harika bir yöntem. Bu örnek, hızlı bir prototip oluşturmak isteyenler için çok pratik bir referans.

  2. Ben de kısa bir test sunucusu kurmak için HttpListener kullandığımda, aynı yaklaşımla PowerShell içinde JSON yanıtları döndürmek çok pratik oldu. Sadece `$response.ContentType = “application/json”` ekleyip, `$json = ConvertTo-Json $obj` ile oluşturduğum veriyi aynı UTF‑8 buffer ile gönderiyorum. Bu sayede API prototiplerini hızlıca test edebildim ve kodunuzu genişletmek istediğinizde çok az ekleme yapmanız yeterli oluyor. Paylaştığınız örnek, bu tür hızlı çözümler için mükemmel bir başlangıç noktası!

  3. Ben de benzer bir senaryoda PowerShell ile HttpListener kullanarak basit bir API uç noktası oluşturdum ve aynı yaklaşımı uyguladım; özellikle UTF-8 dönüşümünü manuel olarak ayarlamak, karakter kodlaması sorunlarını önlemede çok işe yaradı. Ayrıca, while döngüsü içinde birden fazla istek alındığında, her yanıtı ayrı bir thread’de işlemek performansı artırdı. Bu örnek, hızlı bir prototip geliştirmek isteyenler için harika bir başlangıç noktası!

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir