restmethod headers body json rest powershell

json - body - invoke-webrequest headers



¿Cómo puedo usar Powershell para acceder a un servicio web reparador? (3)

@Jaykul escribió un buen conjunto de funciones REST que forman parte de su script Mindwuch Dreamwiki aquí: http://poshcode.org/691

Necesito integrar un script de powershell existente para actualizar su estado a través de un servicio web que devuelve json. Soy un poco nuevo en PowerShell pero pude encontrar el objeto System.Net.WebRequest haciendo algo como lo siguiente.

$a = [System.Net.WebRequest]::Create("http://intranet/service/object/") $a.Method = "GET" $a.GetResponse()

que devuelve una matriz json de objetos

[ {id:1}, {id:2}] // etc

No estoy seguro de a dónde ir desde aquí y cómo analizar esto en un tipo de datos nativo. Me gustaría poder publicar y borrar también.

Cualquier punteros? ¿Y hay alguna biblioteca json / rest o command-let?


Lo que desea es PowerShell 3 y sus cmdlets Invoke-RestMethod , ConvertTo-Json y ConvertFrom-Json . Tu código terminará luciendo como:

$ stuff = invoke-RestMethod -Uri $ url -Method Get;

y ni siquiera debería ser necesario invocar ConvertFrom-Json en el $ stuff => resultante, ya está en un formato no de cadena utilizable.

En cuanto a POSTs | PUTs, simplemente use los hashes y matrices de PowerShell para estructurar sus datos y luego llame a ConvertTo-Json antes de pasarlos a invoke-RestMethod o invoke-WebRequest:

invoke-WebRequest -Uri $ url -ContentType application / json -Method Post -Body $ objectConvertedToJson

Consulte http://technet.microsoft.com/en-us/Library/hh849971.aspx para obtener más información.