1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| $HttpListener = New-Object System.Net.HttpListener
# Définit l'url d'écoute
# Utiliser + pour écouter sur toutes les interfaces (au lieu de localhost) (nécessite les droits admin)
$HttpListener.Prefixes.Add('http://localhost:9999/')
$HttpListener.Start()
While ($HttpListener.IsListening) {
$HttpContext = $HttpListener.GetContext()
$HttpRequest = $HttpContext.Request
$RequestUrl = $HttpRequest.Url.OriginalString
Write-Output "$RequestUrl"
#if($HttpRequest.HasEntityBody) {
# $Reader = New-Object System.IO.StreamReader($HttpRequest.InputStream)
# Write-Output $Reader.ReadToEnd()
#}
$HttpResponse = $HttpContext.Response
$HttpResponse.Headers.Add("Content-Type","text/plain")
$HttpResponse.StatusCode = 200
$ResponseBuffer = [System.Text.Encoding]::UTF8.GetBytes("La demande est prise en compte sur le serveur`nURL : $RequestUrl")
$HttpResponse.ContentLength64 = $ResponseBuffer.Length
$HttpResponse.OutputStream.Write($ResponseBuffer,0,$ResponseBuffer.Length)
$HttpResponse.Close()
# Exécution de ton script. Ne dois pas bloquer le thread si plusieurs exécution en parallèle sont nécessaire
# ....
Write-Output ""
}
$HttpListener.Stop() |
Partager