8

我正在尝试使用新的 invoke-restmethod cmdlet 来发布 JSON 文件并已成功完成。但是,我没有像使用 CURL 时那样收到来自网络服务器的响应。对于我想要完成的事情,我需要从 reposne 获取信息到 POST 并将其用于另一个 POST 命令。

有人可以解释我如何从服务器获得预期的响应吗?以下是 CURL 中的两个命令,第二个使用 Invoke-RestMethod。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
 < 

卷曲命令

 curl -f -v -s -k --no-sessionid -H X-em7-beautify-response:1 -H content-  type:application/json https://URLHERE --data-binary  @jsonfile.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
4

1 回答 1

18

经过一番摸索,我发现了 cmdlet Invoke-WebRequestInvoke-RestMethod除了返回标头和响应之外,此 cmdlet 基本相同。

于 2012-07-26T05:04:42.920 回答