Private/GetUrl.ps1
. "$PSScriptRoot/Constants.ps1"; . "$PSScriptRoot/Models/HttpException.ps1"; . "$PSScriptRoot/GetHttpRequestWithCookie.ps1"; # Make a get request and retry on timeout or non-status code error function GetUrl( [Parameter(Mandatory=$True)] [string]$defaultHostName, [Parameter(Mandatory=$True)] [string]$url, [Parameter(Mandatory=$True)] [System.TimeSpan]$requestTimeOut, [Parameter(Mandatory=$False)] [string]$instanceGuid, [Parameter(Mandatory=$False)] [int16]$tries = 1) { try { return GetHttpRequestWithCookie -defaultHostName $defaultHostName -url $url -instanceGuid $instanceGuid ` -requestTimeOut $requestTimeOut -logRequest ($tries -le 1); } catch [HttpException] { $exception = [HttpException]$_.Exception; $responseMessage = $exception.ResponseMessage; $responseCode = $exception.ResponseCode; foreach($message in $Constants.FilteredErrorMessages){ if ($responseMessage.StartsWith($message)) { throw $responseMessage; } } if ($responseCode -eq -1){ throw; } $exceptionMessage = $exception.Message; Write-Host " $exceptionMessage"; if ($responseCode -ne 408){ throw; } if ($tries -ge $Constants.Defaults.NoResponseRetries) { throw; } return GetUrl -defaultHostName $defaultHostName -url $url -instanceGuid $instanceGuid ` -requestTimeOut $RequestTimeOut -tries ($tries +1); } } |