如何从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. bash脚本输出到REST API调用
- 3. Powershell调用Powershell脚本
- 4. 从非托管C++调用PowerShell脚本
- 5. 使用Powershell调用Rest API - CosmosDb
- 6. 从Azure Web作业调用Powershell脚本
- 7. 如何从套件脚本调用销售人员Rest API
- 8. 使用invoke-vmscript从powercli脚本调用PowerShell脚本?
- 9. 无法从另一个脚本调用PowerShell脚本
- 10. 从批处理脚本调用PowerShell脚本
- 11. 从PowerShell调用Vix API
- 12. 从REST API调用报告
- 13. 从api/app调用u-sql脚本的最佳方式(如rest api,wpf app)
- 14. .NET API运行PowerShell脚本
- 15. 无法通过Powershell脚本获得API Rest响应
- 16. PowerShell脚本从CSV
- 17. PowerShell的HTTP POST REST API基本验证
- 18. 从脚本调用脚本
- 19. 调试 - 通过API执行PowerShell脚本执行通过API
- 20. 使用spark运行pyspark脚本REST API
- 21. 用PowerShell脚本
- 22. Powershell - 查找调用脚本的用户
- 23. 使用Powershell脚本调用Mirth Connect CLI
- 24. 从公共邮箱的Outlook规则调用PowerShell脚本
- 25. 从API服务上的PHP脚本调用远程PHP脚本
- 26. Powershell脚本使用读主机线路调用其他PowerShell脚本
- 27. Powershell调用命令脚本返回码
- 28. 当从PowerShell脚本调用MSBuild时使用.sln,但从命令行调用.csproj
- 29. cURL调用REST Api
- 30. REST API调用await
这是否适用于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