如何從PowerShell腳本調用基於rest的API並處理Json答案?從PowerShell腳本調用REST API
38
A
回答
22
我創造了這個獲取HTTP的功能,使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()
與以XML格式是很容易的,但是,如果要處理JSON你可能會需要一些NET庫像最終的結果處理JSON.Net。
42
你想要的是PowerShell 3及其Invoke-RestMethod
,ConvertTo-Json
和ConvertFrom-Json
cmdlet。你的代碼最終會看起來像:
$stuff = Invoke-RestMethod -Uri $url -Method Get;
而且甚至不應該是一個需要對所得到的$stuff
調用ConvertFrom-Json
=>它已經在使用非字符串格式。
查看http://technet.microsoft.com/en-us/Library/hh849971.aspx瞭解詳情。
5
我們使用Powershell來查詢僅處理Json樣式數據的REST API。它起初很尷尬,但下面的代碼是我們需要執行大多數操作的所有東西:
# 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. 從Ruby腳本中調用Elasticsearch Rest API
- 2. 從Java調用Powershell腳本
- 3. bash腳本輸出到REST API調用
- 4. REST API調用或數據庫腳本
- 5. Powershell調用Powershell腳本
- 6. 從另一個PowerShell腳本調用PowerShell腳本
- 7. 從非託管C++調用PowerShell腳本
- 8. 使用Powershell調用Rest API - CosmosDb
- 9. 從REST API中調用REST Api(Node.js)
- 10. 從另一個調用PowerShell腳本
- 11. 「從腳本調用」Powershell工作流程
- 12. 從Azure Web作業調用Powershell腳本
- 13. 如何從套件腳本調用銷售人員Rest API
- 14. 使用invoke-vmscript從powercli腳本調用PowerShell腳本?
- 15. Powershell腳本調用函數
- 16. 我的本地PowerShell腳本如何調用遠程PowerShell腳本?
- 17. 腳本#調用REST服務
- 18. 從批處理腳本調用PowerShell腳本
- 19. 無法從另一個腳本調用PowerShell腳本
- 20. 如何從Windows PowerShell腳本調用Perl腳本
- 21. 無法從Powershell腳本調用腳本塊
- 22. 從另一個腳本調用powershell腳本
- 23. 從PowerShell調用Vix API
- 24. 從REST API調用報告
- 25. 從api/app調用u-sql腳本的最佳方式(如rest api,wpf app)
- 26. 使用REST API和PowerShell
- 27. .NET API運行PowerShell腳本
- 28. 無法通過Powershell腳本獲得API Rest響應
- 29. PowerShell腳本從CSV
- 30. 從Google Apps腳本調用Twitter API
這是否適用於SharePoint 2010? – craig 2015-01-07 15:53:30
您可能還需要提供憑證。在這種情況下,您將執行諸如$ stuff = Invoke-RestMethod -Uri $ url -Method Get -Credential「domain \ username」的命令。 – 2015-10-08 15:11:35
有沒有辦法傳入Basic Auth的憑證? Jubblerbug所說的工作是展示一個彈出窗口詢問密碼,但我需要自動執行此 – 2017-04-13 16:47:09