Как я могу называть API, основанный на отдыхе, из сценария PowerShell и обрабатывать ответ Json?Вызов API REST из сценария PowerShell
ответ
Я создал эту функцию Get-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.
Что вам нужно, это PowerShell 3 и его Invoke-RestMethod
, ConvertTo-Json
и ConvertFrom-Json
командлеты. Ваш код будет в конечном итоге выглядит как:
$stuff = Invoke-RestMethod -Uri $url -Method Get;
и не должен быть даже необходимо вызвать ConvertFrom-Json
на результирующий $stuff
=> это уже в удобном формате нестрокового.
Подробнее см. http://technet.microsoft.com/en-us/Library/hh849971.aspx.
Мы используем Powershell для запроса API REST, который использует только данные стиля Json. Сначала это было неудобно, но приведенный ниже код - это все, что нам нужно для выполнения большинства операций:
# 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 из пакетного сценария
- 2. Powershell: Рекурсивный вызов сценария
- 3. Вызов API PingAccess из Powershell
- 4. «Вызов» рабочего процесса Powershell из сценария
- 5. Вызов TF.exe из сценария PowerShell в TeamCity
- 6. Синхронный вызов сценария PowerShell из VBScript
- 7. Вызов REST API из браузера
- 8. Вызов REST api из angular2
- 9. Вызов отчетов из REST API
- 10. Вызов сценария powershell из сценария powercli с использованием invoke-vmscript?
- 11. вызов нескольких сценариев powershell из одного сценария powershell
- 12. Вызов mongoimport из сценария
- 13. Вызов сценария из сценария
- 14. Вызов Wordpress rest api
- 15. Вызов внешнего REST Api
- 16. Вызов REST API из приложения android
- 17. Вызов API REST из контроллера codeigniter
- 18. Вызов API REST из веб-приложения MVC
- 19. вызов rest api из другого веб-приложения
- 20. Вызов socket.io из rest api в узле
- 21. Вызов Salesforce REST API из приложения Cordova
- 22. C# Применение Вызов Powershell Проблемы сценария
- 23. Вызов файла внутри папки сценария в PowerShell
- 24. Вызов сценария powershell из другого сценария powershell и гарантирование его UTF8
- 25. Вызов REST API в Asp.Net
- 26. Вызов WebRequest с использованием сценария Powershell
- 27. PowerShell: Вызов блок сценария, содержащий подчеркивания переменной
- 28. Вызов API cloudconvert внутри моего REST API
- 29. Вызов сценария Powershell из ASP.NET (C#), но не дождитесь результатов
- 30. Вызов функции PowerShell из сценария в приложении C#
Будет ли это работать с SharePoint 2010? – craig
Возможно, вам также потребуется предоставить учетные данные. В этом случае вы должны сделать команду, например $ stuff = Invoke-RestMethod -Uri $ url -Method Get -Credential "domain \ username". –
Есть ли способ передать учетные данные для Basic Auth? Что сказал Jubblerbug, чтобы представить всплывающее окно с просьбой ввести пароль, но мне нужно автоматизировать этот –