This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
userspace:assign_packages [2014/02/09 17:45] CreaB |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Create json-rpc web-request from within a powershell script to query the json-rpc api ====== | ||
- | < | ||
- | $urlJSON = ' | ||
- | |||
- | $authUser = " | ||
- | $authPass = " | ||
- | |||
- | $method = " | ||
- | $params = @(" | ||
- | |||
- | Function CallJSON($url, | ||
- | $cred = New-Object System.Net.NetworkCredential -ArgumentList $authUser, | ||
- | |||
- | $bytes = [System.Text.Encoding]:: | ||
- | $web = [System.Net.WebRequest]:: | ||
- | |||
- | [System.Net.ServicePointManager]:: | ||
- | | ||
- | $web.Method = " | ||
- | $web.ContentLength = $bytes.Length | ||
- | $web.ContentType = " | ||
- | $web.Credentials = $cred | ||
- | $stream = $web.GetRequestStream() | ||
- | $stream.Write($bytes, | ||
- | $stream.close() | ||
- | $reader = New-Object System.IO.Streamreader -ArgumentList $web.GetResponse().GetResponseStream() | ||
- | return $reader.ReadToEnd()| ConvertFrom-Json | ||
- | $reader.Close() | ||
- | } | ||
- | |||
- | $data = (New-Object PSObject | | ||
- | Add-Member -PassThru NoteProperty method $method | | ||
- | Add-Member -PassThru NoteProperty params $params | | ||
- | Add-Member -PassThru NoteProperty id ' | ||
- | |||
- | $request = CallJSON $urlJSON $data $authUser $authPass $method $params | ||
- | </ | ||
- | |||
- | **example**: | ||
- | |||
- | < | ||
- | $urlJSON = ' | ||
- | |||
- | $authUser = " | ||
- | $authPass = " | ||
- | |||
- | $method = " | ||
- | $params = @(" | ||
- | |||
- | Function CallJSON($url, | ||
- | $cred = New-Object System.Net.NetworkCredential -ArgumentList $authUser, | ||
- | |||
- | $bytes = [System.Text.Encoding]:: | ||
- | $web = [System.Net.WebRequest]:: | ||
- | |||
- | [System.Net.ServicePointManager]:: | ||
- | | ||
- | $web.Method = " | ||
- | $web.ContentLength = $bytes.Length | ||
- | $web.ContentType = " | ||
- | $web.Credentials = $cred | ||
- | $stream = $web.GetRequestStream() | ||
- | $stream.Write($bytes, | ||
- | $stream.close() | ||
- | $reader = New-Object System.IO.Streamreader -ArgumentList $web.GetResponse().GetResponseStream() | ||
- | return $reader.ReadToEnd()| ConvertFrom-Json | ||
- | $reader.Close() | ||
- | } | ||
- | |||
- | $data = (New-Object PSObject | | ||
- | Add-Member -PassThru NoteProperty method $method | | ||
- | Add-Member -PassThru NoteProperty params $params | | ||
- | Add-Member -PassThru NoteProperty id ' | ||
- | |||
- | $request = CallJSON $urlJSON $data $authUser $authPass $method $params | ||
- | </ |