【发布时间】:2020-06-15 00:41:53
【问题描述】:
这里是 Powershell 的新手,因此感谢您提供任何建议!我正在发布到该网站的 API(我在下面的代码中将其代号为 authenticate.com)以在响应中接收身份验证令牌作为 cookie。下一个目标是获取 cookie 并使用它来验证不同的 API。如何捕获第一个 API 返回的 auth-token 并将其保存到变量中?
我的代码:
$Url = 'https://authenticate.com/apikeylogin'
$auth = @{
keyPublic= '********************'
keySecret= '********************'
}
$json = $auth | ConvertTo-Json
$response = Invoke-WebRequest $Url -Method Post -Body $json -ContentType 'application/json'
$response | Get-Member
$response.RawContent
原始文本中的响应:
HTTP/1.1 200 OK
auth-token: ******************
[Below this is are a dozen more lines of raw data]
重申一下问题,我如何获得上述“auth-token”的值并将其存储到变量中?
【问题讨论】:
-
根据我的阅读,通常您使用
Invoke-RestMethod而不是面向网页的Invoke-WebRequestcmdlet。如果返回 JSON,I-RM东西会自动将返回的数据转换为结构化对象。从...中获取信息相当容易 [grin] -
要查看您的对象有哪些成员和数据,您可以将其通过管道传送到
Select-Object,如下所示:$response | Select-Object -Property *。 -
@Lee-Daily 我最初尝试过 Invoke-RestMethod。问题是它隐藏了太多的响应,我看不到我需要的身份验证令牌!谢谢
-
@Theo 我在发布我的问题之前看到了这个!我认为这与我的问题相似并且有所帮助,但我无法按照它的逻辑取得成功。尽管我试图解决这个问题,但我仍在使用它作为参考!谢谢!
标签: powershell api https