首页 > 解决方案 > 通过 Powershell 获取请求标头

问题描述

我正在尝试使用我们公司使用的基于 Web 的应用程序设置 Powershell API。我已经下载了一个可以完成类似任务的脚本,但我遇到了一个无效的跨站点引用令牌的问题。我对 HTTP 相当不熟悉,但做了足够的挖掘来缩小问题的范围。

该脚本发送两个 HTTP Web 请求,一个用于从应用程序中的特定对象获取数据,另一个用于编辑该对象的属性之一。获取数据的第一个 HTTP 请求成功。如果我在浏览器中查看相同的 HTTP 请求,我会看到我被分配了一个 XSRF 令牌作为请求标头的一部分。

浏览器中 XSRF 令牌的图像

我可以将令牌作为请求标头的一部分复制/粘贴到 Postman 中,并且在 powershell 中失败的第二个请求成功,我也可以在应用程序的末端看到它。我可以根据 powershell 中的 403 错误判断我所缺少的只是 XSRF 令牌。

话虽如此,我看不到任何访问 HTTP 响应的请求标头的方法,我只能通过访问响应的 .headers 属性来获取响应标头,如下所示:

$Result = Invoke-WebRequest @Arguments -Headers $script:ServerConnection.Headers -SessionVariable ConnectServer -UseBasicParsing
$header = Result.headers

简而言之,是否可以访问该 HTTP 响应的请求标头?如果是这样,我可以访问所需的令牌并将其输出到失败的第二个参数的请求标头中。

标签: powershellhttp

解决方案


推荐阅读