Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get StatusCode from request in PowerShell

I need to get success and/or error status code from a request using power shell. And i'm always getting a blank status.

I have tried with Invoke-WebRequest and Invoke-RestMethod. I have sucess on the call but can't find a way of getting the status code.

Here how is currently written:

$resource = "some url"
$Logfile = "C:/path/log.log"

function LogWrite
{
    Param([string]$logstring)

    Add-content $logfile -value $logstring
}

Try
{
    $Response = Invoke-WebRequest -Method Post -Uri $resource 
    Write-Output("Success.")
    LogWrite $Date
    LogWrite SuccessOnCall
    LogWrite  $Response.StatusCode
}
Catch
{
    $ErrorMessage = $_.Exception.Message
    Write-Output($ErrorMessage)
    $FailedItem = $_.Exception
    Write-Output($FailedItem)
    LogWrite $Date
    LogWrite ErrorOnCall
    LogWrite $ErrorMessage
    Break
}

I have also tried:

LogWrite "StatusCode:" $Response.Exception.Response.StatusCode.value__ 

I used this question (and other links) : Invoke-Restmethod: how do I get the return code?

Trying to solve this, my log does write "SuccessOnCall" but the StatusCode is blank.

Thank you.

like image 608
AndreG Avatar asked Apr 19 '19 00:04

AndreG


1 Answers

did you try pipe'ing with select-object ?

Invoke-WebRequest -Uri apiEndpoint -UseBasicParsing | Select-Object StatusCode

output

StatusCode
 ----------
   200

or just to get status code

Invoke-WebRequest -Uri apiEndpoint -UseBasicParsing | Select-Object -Expand StatusCode

output

200

to handle unsuccessful cases, on PowerShell v#7 + include -SkipHttpErrorCheck parameter or you may need to make use of $Error array to get most recent error and access properties accordingly.

like image 101
ManiVI Avatar answered Sep 22 '22 09:09

ManiVI