如何为Powershell的Invoke-RestMethod请求添加Cookies
方案1:手动传入已知Cookie
如果你已经提前拿到了可用的Cookie值,可以直接构造请求头带入:
# 构造请求头,填入实际Cookie内容 $headers = @{ "Cookie" = "user_type=xxx; session_id=yyy" } # 发起带Cookie的请求 $eth_config = Invoke-RestMethod -Method 'Post' -Uri $network_settings_url -Body $request_body -Headers $headers
方案2:自动留存会话Cookie(推荐)
如果需要先登录获取会话Cookie,可通过SessionVariable参数自动管理会话,避免手动复制Cookie:
# 1. 调用登录接口,将返回的会话Cookie存入$siteSession变量 $login_params = @{ Uri = "你的登录接口地址" Method = "Post" Body = @{ username = "实际账号" password = "实际密码" } SessionVariable = "siteSession" } Invoke-RestMethod @login_params # 2. 后续业务请求直接带入WebSession参数,自动携带会话Cookie $eth_config = Invoke-RestMethod -Method 'Post' -Uri $network_settings_url -Body $request_body -WebSession $siteSession
注意事项
- 若请求体为JSON格式,需额外添加参数
-ContentType "application/json",确保服务端可以正常解析请求内容 - Cookie存在有效时长,超时后需要重新登录获取新的会话Cookie再发起请求
内容的提问来源于stack exchange,提问作者CleanCoder540
相关产品推荐
相关产品推荐

