我需要调用API(从我的DNS提供程序获取记录列表),这可以使用curl完成。这将返回格式化的json以及我的所有记录
curl -H 'Authorization: Bearer mytoken' -H 'Accept: application/json' https://api.dnsimple.com/v2/12345/zones/example.com/records
但是,我需要能够从PowerShell
执行此操作$uri = "https://api.dnsimple.com/v2/12345/zones/example.com/records"
$headers = @{}
$headers["Authorization"] = "Bearer mytoken"
$headers["Accept"] = "application/json"
$foo = Invoke-WebRequest $uri -Headers $headers
此命令会运行,但在 $ foo 中我可以访问返回的JSON吗?
答案 0 :(得分:8)
使用Invoke-WebRequest
,您可以访问内容属性:$foo.Content
请注意,您还可以使用Invoke-RestMethod
,它会自动将JSON响应转换为PowerShell对象。
所以这个:
$o = Invoke-RestMethod #params
与此相同:
$foo = Invoke-WebRequest #params
$o = $foo.Content | ConvertFrom-Json