rest - 如何从 PowerShell 中的请求中获取 StatusCode

标签 rest powershell logging invoke-webrequest

我需要使用 Power Shell 从请求中获取成功和/或错误状态代码。我总是得到一个空白状态。

我尝试过 Invoke-WebRequest 和 Invoke-RestMethod。
我已成功通话,但找不到获取状态代码的方法。

这里是如何写的:

$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
}

我也试过:
LogWrite "StatusCode:" $Response.Exception.Response.StatusCode.value__ 


我使用了这个问题(和其他链接):Invoke-Restmethod: how do I get the return code?

试图解决这个问题,我的日志确实写了“SuccessOnCall”,但 StatusCode 为空。

谢谢你。

最佳答案

您是否尝试使用 select-object 进行管道传输?

Invoke-WebRequest -Uri apiEndpoint -UseBasicParsing | Select-Object StatusCode
输出
StatusCode
 ----------
   200
或者只是为了获取状态代码
Invoke-WebRequest -Uri apiEndpoint -UseBasicParsing | Select-Object -Expand StatusCode
输出
200

处理不成功的案件,
在 PowerShell v#7 + 上包含 -SkipHttpErrorCheck parameter
或者
您可能需要使用 $Error 数组以获取最新的错误并相应地访问属性。

关于rest - 如何从 PowerShell 中的请求中获取 StatusCode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55755319/

相关文章:

java - 记录器层次结构问题

eclipse - 如何为 Wildfly 的日志着色 - Eclipse 上的 Jboss Server 控制台

java - 移动应用程序的 Rest API 安全性

javascript - Paypal 客户端 REST : dynamic prices

java - 如何使用 SPRING REST 将 JSON 请求映射到字符串

python - 命令 "where python"在 PowerShell 中不返回任何内容

powershell - 在WMI查询过滤器中转义美元符号

powershell - 自定义资源 : Is it okay to reapply settings every time?

用于连接到 ElasticSearch 的服务器应用程序的 Java 或 Rest API

java - 如何获取特定日志文件并在 jenkins 控制台输出中显示其内容