Private/Invoke-midPointHttp.ps1
|
function Invoke-midPointHttp { # Thin wrapper around Invoke-RestMethod so the rest of the module (and the tests) # can work with status code, headers and body as one object. [CmdletBinding()] param( [Parameter(Mandatory)] [string] $Method, [Parameter(Mandatory)] [string] $Uri, [Parameter(Mandatory)] [hashtable] $Headers, [string] $Body, [switch] $SkipCertificateCheck, [int] $TimeoutSec = 100 ) $params = @{ Method = $Method Uri = $Uri Headers = $Headers SkipHttpErrorCheck = $true StatusCodeVariable = 'statusCode' ResponseHeadersVariable = 'responseHeaders' TimeoutSec = $TimeoutSec ErrorAction = 'Stop' } if ($PSBoundParameters.ContainsKey('Body')) { $params.Body = [System.Text.Encoding]::UTF8.GetBytes($Body) $params.ContentType = 'application/json; charset=utf-8' } if ($SkipCertificateCheck) { $params.SkipCertificateCheck = $true } $response = Invoke-RestMethod @params [pscustomobject]@{ StatusCode = $statusCode Headers = $responseHeaders Body = $response } } |