Wie kann ich eine Rest-basierte API von einem PowerShell-Skript aufrufen und die JSON-Antwort verarbeiten?REST API von PowerShell Skript aufrufen
Antwort
Ich habe dieses Get-Http-Funktion 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()
Der Umgang mit dem Endergebnis als XML ist wirklich einfach, aber fordert zu machen, wenn Sie JSON verarbeiten möchten Sie wahrscheinlich wie eine Net-Bibliothek benötigen JSON.Net.
Sie möchten die PowerShell 3 und ihre Invoke-RestMethod
, ConvertTo-Json
und ConvertFrom-Json
Cmdlets. Ihr Code wird am Ende aussehen wie:
$stuff = Invoke-RestMethod -Uri $url -Method Get;
und es sollte nicht einmal notwendig sein, rufen Sie ConvertFrom-Json
auf den resultierenden $stuff
=> es ist bereits in einem brauchbaren nicht-String-Format.
Weitere Informationen finden Sie unter http://technet.microsoft.com/en-us/Library/hh849971.aspx.
Wir verwenden PowerShell, um eine REST-API abzufragen, die sich nur mit JSON-Daten befasst. Es war zunächst peinlich, aber der folgende Code ist alles, was wir für die meisten Operationen benötigen:
# 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. Blockieren von REST-API-Aufrufen
- 2. Aufrufen Groovy Skript durch Curl in Powershell-Skript
- 3. Powershell aufrufen Von C#
- 4. Powershell Yammer REST API POST-Syntax Problem
- 5. Aufrufen von PowerShell-Skript mit Argumenten aus C#
- 6. Anruf Rest-API von Java Rest API
- 7. COM-Exe-API aus NSIS-Skript aufrufen
- 8. Powershell-Aufruf Powershell-Skript
- 9. wie ich meine DLL aufrufen und in Powershell-Skript verwenden
- 10. Ruby-Skript mit curl von Rest-API (Login)
- 11. Konnte sqlcmd nicht korrekt von Powershell aufrufen
- 12. Wie GetStdHandle, GetConsoleMode von Powershell aufrufen?
- 13. Powershell-Skript von Node.js ausführen
- 14. Run R Skript von Powershell
- 15. Stabilitätsprüfung von REST API
- 16. Warteschlange in TFS 2015-REST-API mit PowerShell erstellen
- 17. E-Mail senden mit REST API mit Powershell
- 18. aufrufen REST Anfrage und Handhabung REST Antwort
- 19. Outlook Rest api „synchronisieren Nachrichten“ ignoriert in nachfolgenden Aufrufen $ erweitert
- 20. Aufrufen von Powershell-Cmdlets aus C#
- 21. REST-API und nicht-REST-API
- 22. REST: eine JavaScript-Funktion aufrufen, eine Aktion API zu senden
- 23. einen Rest api mit Benutzername und Passwort aufrufen - wie man
- 24. Winkelmesser: Wie Rest API POST mit Header und Körper aufrufen
- 25. Rest API ASP.NET
- 26. Anruf Rest Dienst von einem anderen Rest-Dienst Resteasy api
- 27. Powershell Rest Anruf für Etag
- 28. Übergabe von Befehlszeilenargumenten von Powershell-Skript an ein Python-Skript
- 29. PowerShell-Skript in PostBuild
- 30. Ausführen von PowerShell-Skript aus C# -Anwendung
Funktioniert dies mit SharePoint 2010? – craig
Sie müssen möglicherweise auch Anmeldeinformationen angeben. In diesem Fall würden Sie einen Befehl wie $ stuff = Invoke-RestMethod -Uri $ url -Method Get -Credential "Domäne \ Benutzername" machen. –
Gibt es eine Möglichkeit, die Anmeldeinformationen für Basic Auth zu übergeben? Was Jubblerbug gesagt hat funktioniert, um ein Popup zu präsentieren, das nach dem Passwort fragt, aber ich muss das automatisieren –