Mediante la petición http://localhost/coche obtener información sobre coche.
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# Clase coche con propiedades y constructor class Coche { $Marca $Modelo $Color #Constructor de la clase Coche($Marca,$Modelo,$Color) { $this.Marca = $Marca $this.Modelo = $Modelo $this.Color = $Color } } # Crear el objeto $coche = [Coche]::new('seat','ibiza','negro') # Exportar objeto a JSON y almacenarlo en un servidor web (o en un fichero en el sistema de archvios) # $coche | ConvertTo-Json # System.Net.HttpListener: proporciona un agente de escucha del protocolo HTTP sencillo y controlado mediante programación $serverweb = [System.Net.HttpListener]::new() # Obtiene los prefijos de identificador uniforme de recursos (URI) controlados por este objeto $serverweb.Prefixes.Add('http://localhost:8080/') # Permite que esta instancia reciba solicitudes de entrada $serverweb.Start() # Espera a una solicitud de entrada y vuelve cuando se recibe una $peticion = $serverweb.GetContext() if($peticion.Request.RawUrl -eq "/coche/") { # Construir, escribir y cerrar la respuesta con un contenido HTML en la petición recibida (sin tener en cuenta el recurso por el que se pide, si hay que tener en cuenta el recurso se utiliza $peticion.Request.Url y $peticion.Request.Url.LocalPath) $paginaweb = [System.Text.Encoding]::UTF8.GetBytes(($coche | ConvertTo-Json)) $peticion.Response.ContentLength64 = $paginaweb.Length $peticion.Response.OutputStream.Write($paginaweb,0,$paginaweb.Length) $peticion.Response.StatusCode $peticion.Response.Close() } # Hace que esta instancia deje de recibir nuevas solicitudes entrantes y termine el procesamiento de todas las solicitudes en curso $serverweb.Stop() |
Petición desde navegador Chrome
Petición desde PowerShell
1 |
Invoke-RestMethod http://localhost:8080/coche/ |