如何使Invoke-RestMethod按原样打印响应正文

时间:2017-10-25 14:10:01

标签: json rest powershell-v5.0

  

注意:此问题出于历史原因或Powershell<的用户。 6.0.0。在Powershell 6及更高版本中不应出现此问题。

我正在尝试使用powershell cmdlet Invoke-RestMethod将json端点打印到控制台。

命令成功执行,但最终结果是包含所有json的1级字段的终端表。

我正在运行这样的cmdlet:

Invoke-RestMethod -Uri <some url here> -Method GET -ContentType "application/json"

得到这样的东西:

sections _links
-------- ------
         {@{rel=parent; href=https://us9.api.mailchimp.com/3.0/templates/138...

如何在没有格式化的情况下将原始响应打印到终端?

2 个答案:

答案 0 :(得分:7)

首先,您提供的-Method-ContentType是默认值,您可以删除它们。为了得到json,把它扔回json。

Invoke-RestMethod -Uri "http://example.com/" | ConvertTo-Json -Depth 10

我不知道你为什么要回到json,但好吧,你走了。

答案 1 :(得分:3)

另一个答案适用于JSON响应,但-UseBasicParsing开关适用于任何响应类型:

(Invoke-WebRequest -UseBasicParsing -Uri 'http://example.com').Content

将只提供响应内容(在example.com案例中,原始html或在您的用例中,原始JSON)。