如何访问Restful API返回的字段的值

时间:2017-05-31 09:57:28

标签: rest api powershell restful-authentication

我有一个非常基本的要求来调用RESTful API。我目前使用的是PowerShell版本4的Windows 2012 R2服务器。

这是我的代码:

$logon = @{
    username = 'blah'
    password='blah'
}

$body = $logon | ConvertTo-Json 

$URI = 'https://URL/Logon'

Invoke-WebRequest -URI $URI -Method POST -Body $body -ContentType 'application/json' -Verbose 

我得到以下结果:

{"LogonResult":"blahblahblah"}

如何仅提取登录令牌以重用为变量?我已经在命令的开头添加了一个变量:

   $token =  (Invoke-WebRequest -URI $URI -Method POST -Body $body -ContentType 'application/json' -Verbose).content 

这将返回整个结果,而不仅仅是令牌。我如何才能获得令牌呢?

1 个答案:

答案 0 :(得分:1)

您可以按如下方式获取返回的LogonResult属性的值:

$token =  ((Invoke-WebRequest -URI $URI -Method POST -Body $body -ContentType 'application/json' -Verbose).content | ConvertFrom-JSON).LogonResult

或者您使用Invoke-RestMethod来简化此操作,因为它只返回内容并自动将其转换为PSObject:

$token =  (Invoke-RestMethod -URI $URI -Method POST -Body $body -ContentType 'application/json' -Verbose).LogonResult