Come posso chiamare un'API basata sul resto da uno script PowerShell ed elaborare la risposta Json?Chiama l'API REST dallo script PowerShell
risposta
ho creato questa funzione Get-Http per fare richieste 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()
Trattare con il risultato finale in formato XML è davvero semplice, tuttavia, se si desidera elaborare JSON probabilmente avrà bisogno qualche libreria Net come JSON.Net.
Quello che vuoi è PowerShell 3 ei suoi cmdlet Invoke-RestMethod
, ConvertTo-Json
e ConvertFrom-Json
. Il tuo codice finirà per assomigliare:
$stuff = Invoke-RestMethod -Uri $url -Method Get;
e non ci dovrebbe essere anche un bisogno di invocare ConvertFrom-Json
sulla conseguente $stuff
=> è già in un formato non stringa utilizzabile.
Vedere http://technet.microsoft.com/en-us/Library/hh849971.aspx per dettagli.
Usiamo Powershell per interrogare un'API REST che si occupa solo di dati in stile Json. All'inizio è stato complicato, ma il codice riportato di seguito è tutto ciò di cui abbiamo bisogno per eseguire la maggior parte delle operazioni:
# 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. Chiama un URL con Script PowerShell pianificato
- 2. Chiama e ricevi output dallo script Python in Java?
- 3. Chiamata Powershell Script PowerShell
- 4. uscita colorato dallo script tessuto
- 5. sceneggiatura carico dallo script Groovy
- 6. Registro accessi dallo script Elasticsearch
- 7. Elevare gli script Powershell
- 8. Run R script PowerShell
- 9. Script PowerShell in PostBuild
- 10. Attività IT: script F # vs script PowerShell
- 11. Modo più sicuro per eseguire il file BAT dallo script PowerShell
- 12. REST Chiama con l'elenco delle intestazioni
- 13. Chiama Perl script da Python
- 14. Fermare PowerShell gasdotto, garantire fine si chiama
- 15. Ottieni il percorso per lo script Swift dallo script
- 16. valore di ritorno dallo script python allo script di shell
- 17. Lo script PHP non può essere emesso dallo script Python
- 18. Esegui script (remoto) php dallo script python (locale)
- 19. Come usare pastebin dallo script di shell?
- 20. MYSQL differisce in Output dallo script
- 21. Uscita da shell Spark dallo script scala
- 22. Julia richiede l'input dell'utente dallo script
- 23. Ottieni l'eseguibile PHP corrente dallo script?
- 24. start node app dallo script python
- 25. restituendo JSON e HTML dallo script PHP
- 26. "Crea pacchetto di distribuzione" VS2010 dallo script
- 27. Esegui un'applicazione C# dallo script python
- 28. Riferimento ai pacchetti NuGet dallo script csx
- 29. Registrazione solo da registro Python dallo script
- 30. come modificare exe.config dallo script Innosetup
Funzionerà con SharePoint 2010? – craig
Potrebbe anche essere necessario fornire le credenziali. In questo caso si dovrebbe eseguire un comando come $ stuff = Invoke-RestMethod -Uri $ url -Method Get -Credential "dominio \ username". –
C'è un modo per trasmettere le credenziali per l'autenticazione di base? Quello che Jubblerbug ha detto funziona per presentare un popup che richiede la password, ma ho bisogno di automatizzare questo –