¿Cómo puedo invocar una API basada en el resto de un script de PowerShell y procesar la respuesta de Json?API REST de llamada de PowerShell Script
Respuesta
creé esta función Get-HTTP para realizar peticiones HTTP
param([string]$url)
$req = [System.Net.WebRequest]::Create($url)
$req.Method ="GET"
$req.ContentLength = 0
$resp = $req.GetResponse()
$reader = new-object System.IO.StreamReader($resp.GetResponseStream())
$reader.ReadToEnd()
Tratar con el resultado final como XML es muy fácil, sin embargo, si desea procesar JSON es probable que necesite alguna biblioteca .Net como JSON.Net.
Lo que quiere es PowerShell 3 y sus Invoke-RestMethod
, ConvertTo-Json
y ConvertFrom-Json
cmdlets. Su código se termina pareciéndose a:
$stuff = Invoke-RestMethod -Uri $url -Method Get;
y no hay ni siquiera debe ser una necesidad de invocar ConvertFrom-Json
en el $stuff
resultante => ya está en un formato no sea una cadena utilizable.
Ver http://technet.microsoft.com/en-us/Library/hh849971.aspx para más detalles.
Usamos Powershell para consultar una API REST que se ocupa solo de los datos de estilo Json. Al principio fue incómodo, pero el siguiente código es todo lo que necesitamos para realizar la mayoría de las operaciones:
# Authentication
$webclient = New-Object System.Net.WebClient
$creds = New-Object System.Net.NetworkCredential("MyUsername","MyPassword");
$webclient.Credentials = $creds
# Data prep
$data = @{Name='Test';} | ConvertTo-Json
# GET
$webClient.DownloadString($url) | ConvertFrom-Json
# POST
$webClient.UploadString($url,'POST',$data)
# PUT
$webClient.UploadString($url,'PUT',$data)
- 1. PowerShell HTTP Post REST API de autenticación básica
- 2. llamada OpenFileDialog de PowerShell
- 3. API REST Autenticación MongoDB
- 4. Powershell llamando al script de Powershell
- 5. de autenticación de API REST
- 6. Streaming API vs Rest API?
- 7. REST Generación de documento API
- 8. API REST de clasificación dilema
- 9. Script de PowerShell en PostBuild
- 10. Pruebas unitarias API REST
- 11. API REST para rabbitmq
- 12. API REST interna
- 13. API REST para Java?
- 14. C# REST API Client
- 15. Ember.js & REST API
- 16. Probar API REST
- 17. herramienta de modelado de API REST
- 18. API Salesforce REST ¿Iniciar sesión?
- 19. Autenticación con una API REST
- 20. Consumir API REST desde .NET
- 21. API REST Delphi Publicar muestra
- 22. salesforce rest api INVALID_SESSION_ID error
- 23. Seguridad para API REST "privada"
- 24. ¿Cómo escribir una API REST?
- 25. ¿Cómo documenta una API REST?
- 26. REST Web Services API Design
- 27. REST/XML Api con Java
- 28. OPCIONES en PHP REST API
- 29. Haskell REST/GDATA API library
- 30. API de cliente Java REST para Android
¿Esto funcionará con SharePoint 2010? – craig
Es posible que también deba proporcionar credenciales. En este caso, usted haría un comando como $ stuff = Invoke-RestMethod -Uri $ url -Método Obtenga -Credential "dominio \ nombre de usuario". –
¿Hay alguna manera de pasar las credenciales para Basic Auth? Lo que Jubblerbug dijo funciona para presentar una ventana emergente que solicita la contraseña, pero necesito automatizar esta –