Powershell v3调用RestMethod

Powershell v3调用RestMethod,rest,powershell,curl,Rest,Powershell,Curl,我正在尝试使用新的invoke-restmethod cmdlet发布JSON文件,并且已经成功地这样做了。但是,我没有像使用CURL时那样从Web服务器收到响应。对于我试图实现的目标,我需要从reposne获取信息到POST,并将其用于另一个POST命令 有人能解释一下我如何从服务器获得预期的响应吗?下面是两个命令,第一个是CURL,第二个是Invoke rest方法。curl命令将执行正确的POST并返回响应。Powershell命令将执行正确的POST,但不会返回响应 谢谢 编辑:我认为我

我正在尝试使用新的invoke-restmethod cmdlet发布JSON文件,并且已经成功地这样做了。但是,我没有像使用CURL时那样从Web服务器收到响应。对于我试图实现的目标,我需要从reposne获取信息到POST,并将其用于另一个POST命令

有人能解释一下我如何从服务器获得预期的响应吗?下面是两个命令,第一个是CURL,第二个是Invoke rest方法。curl命令将执行正确的POST并返回响应。Powershell命令将执行正确的POST,但不会返回响应

谢谢

编辑:我认为我试图从ps输出中获得的主要内容是“响应头”,即下面的curl命令输出

 < HTTP/1.1 201 Created
 < Date: Thu, 26 Jul 2012 01:20:06 GMT
 < Server: Apache
 < X-EM7-Implemented-methods: GET,PUT,POST
 < X-Powered-By: ScienceLogic,LLC - EM7 API/Integration Server
 < Location: /ticket/321750
 < X-EM7-status-message: ticket /ticket/321750 added.
 < X-EM7-status-code: CREATED
 < Content-Length: 830
 < Content-Type: application/json
 < 
Powershell代码

 $cert=New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("certfile.crt")
 $json = Get-Content jsonfile.json
 $cred = Get-Credential -Message "Enter Credentials"

 Invoke-RestMethod -Uri https://URLHERE -Credential $cred -Body $json -Certificate $cert -ContentType application/json -Method POST

在仔细研究之后,我发现了cmdlet
Invoke-WebRequest
。此cmdlet与
Invoke RestMethod
基本相同,只是它返回标题和响应。

显然,我在两天内无法接受自己的答案。那么再见:)看起来$result=Invoke RestMethod。。。和$result=Invoke WebRequest…,当与-OutFile一起使用时,不要在$result对象中提供HTTP状态码等,在我对Win 8.1 PS4的测试中它是空的。相反,我删除了-OutFile并检查$result.StatusCode,然后写入输出$result.ToString | Set Content$文件(我处理的是文本,所以$result.Content不需要)。文档说,除非您还指定了文件的
-OutFile路径,否则此cmdlet应该自动发送结果。它还声明cmdlet输出XmlDocument、HtmlWebResponseObject和string。显然,这应该是可行的。我会尝试使用
-OutFile c:\response.txt
作为一种潜在的解决方法。如果这不起作用,我会说是时候提交一个bug了。顺便说一句,你使用的是哪种版本的V3?我想我可能把我的问题说错了。我确实从powershell命令获得了输出,但我并没有得到curl命令输出的所有内容。最明显的是请求头。我将重申我上面的问题。你得到了什么结果?尝试通过
|Get Member
运行输出,以查看您获得的对象类型。请记住,默认情况下,PowerShell并不总是显示对象上可用的所有信息。
 $cert=New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("certfile.crt")
 $json = Get-Content jsonfile.json
 $cred = Get-Credential -Message "Enter Credentials"

 Invoke-RestMethod -Uri https://URLHERE -Credential $cred -Body $json -Certificate $cert -ContentType application/json -Method POST