FILE: C:\Program Files (x86)\Plesk\Additional\Scheduler\fetch_url.ps1
--
If ($args.Length -eq 0) {
Write-Host 'URL not specified'
exit 1
}
$url = $args[0]
If (!($url -match '^\w+://')) {
$url = 'http://' + $url
}
Try {
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
$webRequest = [net.WebRequest]::Create($url)
$response = $webRequest.GetResponse()
$status = $response.Statuscode -as [int]
Write-Host "Url '$url' fetched\n"
Write-Host "Status: $status"
$reader = $response.GetResponseStream()
$encoding = [System.Text.Encoding]::GetEncoding($null)
[byte[]]$buffer = new-object byte[] 4096
[int]$total = [int]$count = 0
do {
$count = $reader.Read($buffer, 0, $buffer.Length)
$output += $encoding.GetString($buffer, 0, $count)
} while ($count -gt 0)
Write-Host 'Output:'
Write-Host $output
If ($status -eq 200) {
exit 0
}
exit 1
}
Catch {
Write-Warning "Unable to fetch url: $url"
Write-Warning "$($Error[0])"
exit 1
}
Finally {
If ($response) {
$response.Close()
}
}
--