User Tools

Site Tools


userspace:json-rpc_web-request

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

userspace:json-rpc_web-request [2014/02/09 17:48]
CreaB created
userspace:json-rpc_web-request [2021/08/23 08:37]
Line 1: Line 1:
-====== Create json-rpc web-request from within a powershell script to query the json-rpc api ====== 
  
-<code> 
-$urlJSON = 'https://xxx.xxx.xxx.xxx:4447/rpc' 
- 
-$authUser = "[username]" 
-$authPass = "[password]" 
- 
-$method = "[method]" 
-$params = @("[packageId]","[clienID]","[action]") 
- 
-Function CallJSON($url,$object,$authUser,$authPass,$method,$params) { 
-    $cred = New-Object System.Net.NetworkCredential -ArgumentList $authUser,$authPass 
- 
-    $bytes = [System.Text.Encoding]::ascii.GetBytes($object) 
-    $web = [System.Net.WebRequest]::Create($url) 
- 
-    [System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true} 
-         
-    $web.Method = "POST" 
-    $web.ContentLength = $bytes.Length 
-    $web.ContentType = "application/json" 
-    $web.Credentials = $cred 
-    $stream = $web.GetRequestStream() 
-    $stream.Write($bytes,0,$bytes.Length) 
-    $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 '1') | ConvertTo-Json -depth 3 
- 
-$request = CallJSON $urlJSON $data $authUser $authPass $method $params 
-</code> 
- 
-**example**: automatically assign a meta-package of default software to every new client registered to OPSI 
- 
-<code> 
-$urlJSON = 'https://your-opsi-server-url:4447/rpc' 
- 
-$authUser = "adminuser" 
-$authPass = "TopSecretPassword" 
- 
-$method = "setProductActionRequestWithDependencies" 
-$params = @("hwaudit","servername.domain.tld","setup") 
- 
-Function CallJSON($url,$object,$authUser,$authPass,$method,$params) { 
-    $cred = New-Object System.Net.NetworkCredential -ArgumentList $authUser,$authPass 
- 
-    $bytes = [System.Text.Encoding]::ascii.GetBytes($object) 
-    $web = [System.Net.WebRequest]::Create($url) 
- 
-    [System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true} 
-         
-    $web.Method = "POST" 
-    $web.ContentLength = $bytes.Length 
-    $web.ContentType = "application/json" 
-    $web.Credentials = $cred 
-    $stream = $web.GetRequestStream() 
-    $stream.Write($bytes,0,$bytes.Length) 
-    $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 '1') | ConvertTo-Json -depth 3 
- 
-$request = CallJSON $urlJSON $data $authUser $authPass $method $params 
-</code> 
userspace/json-rpc_web-request.txt ยท Last modified: 2021/08/23 08:37 (external edit)