Powershell‎ > ‎

wget curl invoke-webrequest


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




Comments