我有一个非常基本的要求来调用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
这将返回整个结果,而不仅仅是令牌。我如何才能获得令牌呢?
答案 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