You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Robot Framework(RequestsLibrary)中传递Cookie至GET请求

解决Robot Framework中POST会话Cookie传递到GET请求的问题

错误原因

报错${cookie} is Unknown in this session的核心问题是:你代码里用到的${cookie}变量没有被提前定义或从之前的POST请求响应中提取出来,当前会话上下文找不到这个变量;同时你调用Create Session的参数用法也存在错误。

解决方案

方案1:利用会话自动维护Cookie(推荐)

Robot Framework的RequestsLibrary会话会自动保存请求的Cookie,后续用同一个会话发送请求时会自动带上,无需手动传递:

# 1. 创建会话
Create Session    mySession    ${api_auth}

# 2. 发送POST请求,会话自动保存Cookie
${post_response}=    POST On Session    mySession    ${auth_endpoint}    ${payload}
Log To Console    POST响应状态码:${post_response.status_code}

# 3. 直接用同一个会话发送GET请求,Cookie自动携带
${response}=    GET On Session    mySession    ${api_profile}
Log To Console    ${response.status_code}

方案2:手动提取并传递Cookie

如果必须手动处理Cookie,需要先从POST响应中提取,再正确传入会话:

# 1. 发送POST请求获取响应
${post_response}=    POST Request    ${api_auth}    ${payload}

# 2. 从响应中提取Cookie(根据实际响应格式调整)
# 方式A:获取响应的完整cookies对象
${cookie}=    Set Variable    ${post_response.cookies}
# 方式B:提取特定Cookie,比如名为session_id的Cookie
${session_cookie}=    Get From Dictionary    ${post_response.cookies}    session_id
${cookie_dict}=    Create Dictionary    session_id=${session_cookie}

# 3. 创建会话时传入Cookie(注意参数名是cookies)
Create Session    mySession    ${api_auth}    cookies=${cookie}
# 或者传入构造好的特定Cookie字典
# Create Session    mySession    ${api_auth}    cookies=${cookie_dict}

# 4. 发送GET请求
${response}=    GET On Session    mySession    ${api_profile}
Log To Console    ${response.status_code}

你的代码修正点

  1. 补充POST请求步骤,从响应中提取${cookie}变量,确保它在Create Session执行前被定义。
  2. 调用Create Session时,手动传Cookie需要指定参数名cookies=,比如Create Session mySession ${api_auth} cookies=${cookie},而非直接把${cookie}放在第三个参数位置。

内容的提问来源于stack exchange,提问作者marysh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 06:04:56