开发者

Call REST API from PowerShell Script

How can I call a rest base开发者_如何转开发d API from a PowerShell script and process the Json answer?


What you want is PowerShell 3 and its Invoke-RestMethod, ConvertTo-Json, and ConvertFrom-Json cmdlets. Your code will end up looking like:

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

and there shouldn't even be a need to invoke ConvertFrom-Json on the resulting $stuff => it's already in a usable non-string format.

See http://technet.microsoft.com/en-us/Library/hh849971.aspx for details.


I created this Get-Http function to make HTTP requests

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()

Dealing with the end result as xml is really easy, however, if you want to process JSON you probably will need some .Net library like JSON.Net.


We use Powershell to query a REST API that deals only with Json style data. It was awkward at first but the below code is all we need to perform most operations:

# 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)
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜