【发布时间】:2017-11-01 01:41:06
【问题描述】:
我有一个非常基本的要求来调用 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
这将返回整个结果,而不仅仅是令牌。结果如何才能获得令牌?
【问题讨论】:
-
嘿,不,端点没有公共 API。我已经尝试过 GET 和 POST,对于该特定命令(登录),它需要根据文档进行 POST。它还应该返回一个登录令牌,然后我在登录后使用它来发出进一步的命令。
-
只是为了添加更多信息。当我故意输入错误密码时,我得到以下信息:URL 使用 -1 字节有效负载登录 Invoke-WebRequest : {"ErrorCode":"ITATS004E","ErrorMessage":"Authentication failure for User 8780575."} At D:\test-websdk.ps1:10 char:1 + Invoke-WebRequest -URI $URI -Method POST -Body $body -ContentType 'application/j ... + ~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~和原来的错误一样跨度>
-
将服务器日志添加到主帖 - 更易于阅读
-
有进展,我得到一个返回值现在在 OP 中更新了
标签: rest api powershell restful-authentication