Подтвердить что ты не робот

Как я могу использовать Powershell для доступа к спокойному веб-сервису?

Мне нужно интегрировать существующую powershell script, чтобы обновить ее статус с помощью успокоительной веб-службы, которая возвращает json. Я немного новичок в powershell, но мне удалось найти объект System.Net.WebRequest, сделав что-то вроде следующего.

$a = [System.Net.WebRequest]::Create("http://intranet/service/object/")
$a.Method = "GET"
$a.GetResponse()

который возвращает массив json объектов

[ {id:1}, {id:2}] // etc

Я не уверен, куда идти отсюда и как разбирать это в родном типе данных. Я хотел бы иметь возможность отправлять и удалять.

Любые указатели? И есть ли какие-либо библиотеки json/rest или command-let?

4b9b3361

Ответ 1

Вы хотите PowerShell 3 и его командлеты Invoke-RestMethod, ConvertTo-Json и ConvertFrom-Json. Ваш код будет выглядеть следующим образом:

$stuff = invoke-RestMethod -Uri $url -Method Get;

и не должно быть необходимости также вызывать ConvertFrom-Json в полученном в результате $stuff = > в уже используемом нестрочном формате.

Что касается POSTs | PUT, просто используйте хеши PowerShell и массивы для структурирования ваших данных, а затем вызовите ConvertTo-Json на нем, прежде чем передавать его для вызова-RestMethod или invoke-WebRequest:

invoke-WebRequest -Uri $url -ContentType application/json -Method Post -Body $objectConvertedToJson

Подробнее см. http://technet.microsoft.com/en-us/Library/hh849971.aspx.

Ответ 2

Вы можете использовать DataContractJsonSerializer, который является частью стандартной библиотеки .Net.

Ответ 3

@Jaykul написал хороший набор функций RESTful, которые являются частью его мечты windm wiki script здесь: http://poshcode.org/691