使用 -OutFile 参数时如何获取 Invoke-WebRequest/Invoke-RestMethod 上的 HTTP 状态?

Osc*_*ley 1 rest powershell powershell-3.0

我有一个安静的 API 的请求(注意,它同时发生在Invoke-WebRequestInvoke-RestMethod):

$resp1 = Invoke-WebRequest -OutFile $clusterConfigZipFile -Uri $apiFolder -Body $fileContent -Method 'POST' -Credential $adminCredentials -ContentType "application/x-www-form-urlencoded" -ErrorAction SilentlyContinue -Verbose
Run Code Online (Sandbox Code Playgroud)

我知道它可以正常工作,因为:

  • 它会下载一个正确的 zip 文件。
  • 如果我使用 Fiddler,我可以看到响应标头(HTTP 200) 抓捕提琴手

我的问题是代码在$resp1. 我已经读到,当您使用-OutFile.

无论如何要捕获响应或至少响应代码PowerShell?

Ans*_*ers 5

文档所述-Passthru如果除了写入文件之外还希望返回响应,请使用该参数。

-输出文件<字符串>

将响应正文保存在指定的输出文件中。输入路径和文件名。如果省略路径,则默认为当前位置。

默认情况下,Invoke-WebRequest将结果返回到管道。要将结果发送到文件和管道,请使用Passthru参数。