Invoke-RestMethod 不传递标头

jam*_*iet 2 cookies powershell fiddler

Invoke-RestMethod 遇到了一个非常奇怪的问题。我使用它发送 GET 并在请求中包含一个 cookie:

$getEndpoint = "http://YYYYYYYYYYYYYY/clients/XXXXXX/dev"
$authheader = "auth_tkt=\""XXX"""
Invoke-RestMethod -Headers @{"cookie" = "$authheader"} -Uri $getEndpoint 
Run Code Online (Sandbox Code Playgroud)

如果我查看 Fiddler 中的请求,我会看到以下内容:

GET http://YYYYYYYYYYYYYY/clients/XXXXXX/dev HTTP/1.1 用户代理:Mozilla/5.0(Windows NT;Windows NT 6.1;en-GB) WindowsPowerShell/4.0 主机:YYYYYYYYYYYYYY 连接:保持活动

饼干去哪儿了?沿着管道的某个地方,饼干正在消失。有什么想法吗?我假设我在某个地方误解了某些东西。

如果重要的话,我尝试了来自curl的类似请求,它工作没有问题(即它使用提供的cookie进行身份验证,并且我得到了我期望的响应):

卷曲-H“cookie:auth_tkt = \”XXX“ http://YYYYYYYYYYYYYY/clients/XXXXX/dev

Loï*_*HEL 5

invoke-restmethod 的文档说你不能通过 cookie 传递-headers

headers 指定 Web 请求的标头。输入哈希表或字典。要设置 UserAgent 标头,请使用 UserAgent 参数。您不能使用此参数指定 UserAgent 或 cookie 标头

另一种选择是使用 webclient 和 cookieContainer;看看那篇文章: powershell httpwebrequest GET method cookiecontainer Problem?