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)] [AllowNull()] [Nullable[System.TimeSpan]]$requestTimeOut, [Parameter(Mandatory=$False)] [string]$instanceGuid, [Parameter(Mandatory=$False)] [int16]$tries = 1, [Parameter(Mandatory=$False)] [Boolean]$outputHtml = $False) { try { return GetHttpRequestWithCookie -defaultHostName $defaultHostName -url $url -instanceGuid $instanceGuid ` -requestTimeOut $requestTimeOut -logRequest ($tries -le 1) -outputHtml $outputHtml; } 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.InnerException.Response; 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); } } |