How can I use Powershell to access a restful webservice? How can I use Powershell to access a restful webservice? powershell powershell

How can I use Powershell to access a restful webservice?


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.

As for POSTs|PUTs, simply use PowerShell hashes and arrays to structure your data and then call ConvertTo-Json on it before passing it to invoke-RestMethod or invoke-WebRequest:

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

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


You could use DataContractJsonSerializer, which is a part of standard .Net library.


@Jaykul wrote a nice set of RESTful functions that are part of his Mindtouch dreamwiki script over here: http://poshcode.org/691