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

时间:2015-07-22 15:16:50

标签: rest powershell powershell-v3.0

我有一个关于restful 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

我知道它可行,因为:

  • 下载一个正确的zip文件。
  • 如果我使用Fiddler,我可以看到响应标头(HTTP 200) Capture of Fiddler

我的问题是代码在$resp1中没有返回任何内容。我read表示它是"功能"当您使用-OutFile

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

1 个答案:

答案 0 :(得分:3)

作为documented,如果您希望除了写入文件之外还要返回响应,请使用-Passthru参数。

  

<强> -OUTFILE&LT;字符串&GT;

     

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

     

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