wget / curl like functionality
$url = "http://www.google.com"
$Request = Invoke-WebRequest -Uri $url -SessionVariable Session
$Request = Invoke-WebRequest -Uri $url -SessionVariable Session -UserAgent $UserAgent
$Session.Cookies.GetCookies($url)
$request.StatusCode
$request.StatusDescription
$Request.BaseResponse.ResponseUri.AbsoluteUri
$UserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1944.0 Safari/537.36"
$MobileUserAgent = "Mozilla/5.0 (Linux; Android 4.4.2; Nexus 5 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36"
Check-HTTPRedirects
function Check-HTTPRedirects
{
<#
.synopsis
Follow URL Redirects and display output
.description
Follow 3XX Redirects untill you get a non 3XX response or MaxRedirects is reached.
.PARAMETER URL
http://google.com
.PARAMETER UserAgent
User Agent String
.PARAMETER MaxRedirects
Maximum Redirects to follow. Default is 5 to exit loop
.example
C:\PS> Check-HTTPRedirects -URL "http://google.com"
http://google.com 301 gws
http://www.google.com/ 200 gws
.example
C:\PS> Check-HTTPRedirects -URL "http://google.com" -UserAgent $MobileUserAgent
http://google.com 301 gws
http://www.google.com/ 302 gws
https://www.google.com/ 200 gws
#>
[CmdletBinding()]
Param(
[parameter(Mandatory = $true,HelpMessage="You must specify a URL")]
[alias("URI")]
[string] $URL=$(throw '$URL is required'),
[string] $UserAgent,
[int] $MaxRedirects = 5
)
[PSObject[]] $Responses = @()
do {
$WebRequest = $null
If ($UserAgent) {
$WebRequest = Invoke-WebRequest -Method HEAD -Uri $URL -MaximumRedirection 0 -ErrorAction Ignore -UserAgent $UserAgent
}
Else {
$WebRequest = Invoke-WebRequest -Method HEAD -Uri $URL -MaximumRedirection 0 -ErrorAction Ignore
}
#$WebRequest = Invoke-WebRequest -Method HEAD -Uri $URL -MaximumRedirection 0 -ErrorAction Ignore $(If ($UserAgent -ne $null) {"-UserAgent " + $UserAgent})
$Counter ++
$Location = $WebRequest.Headers.Location
if ($Location -eq $null) {
$Location = $WebRequest.BaseResponse.ResponseUri.AbsoluteUri
}
#
#Add URL, Status Code and Server to the string
$Responses += "$URL $($WebRequest.StatusCode.ToString()) $($WebRequest.Headers.Server)"
$URL = $Location
#If the Status Code is not 3XX or we have reached the MaxRedirects exit the loop
} until (($WebRequest.StatusCode -lt 300 -or $WebRequest.StatusCode -gt 399) -or ($Counter -ge $MaxRedirects) )
Return $Responses
}
$URI = "http://wellsfargo.com"
$MobileUserAgent = "Mozilla/5.0 (Linux; Android 4.4.2; Nexus 5 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36"
Check-HTTPRedirects -URI $URI -$MaxRedirects 4 -UserAgent $MobileUserAgent Returns http://wellsfargo.com 301 KONICHIWA/1.1
https://www.wellsfargo.com/ 302
https://m.wellsfargo.com/mba/?redirect=www 200 KONICHIWA/1.1
|
|