Robot Framework请求报错InvalidHeader:Cookie头部非法字符问题求助
错误原因
从请求头信息能看到,Cookie字段的值以前导空格开头:' jive.security.context=...',这违反了HTTP Header的格式规则——Header值不允许包含前导空格、回车或换行等无效字符,因此触发InvalidHeader错误。
空格来自脚本的Cookie提取逻辑:
Get Cookies获取的Cookie字符串经;分割后,${str}[1]本身带有前导空格- 直接将带空格的字符串赋值给
${final_cookie},最终带入请求头导致格式错误
解决办法
方法1:快速修复现有逻辑
在获取${final_cookie}时,添加去除前后空白的处理:
# 替换原有的set variable步骤,用String Strip清理空白 ${final_cookie}= String Strip ${str}[1]
方法2:更规范的Cookie拼接方式(推荐)
手动分割Cookie字符串易出现格式错误,建议直接遍历Get Cookies返回的Cookie对象列表,拼接成标准的Cookie字符串:
# 替换原有的Cookie提取代码块 ${cookies}= Get Cookies ${cookie_str}= Set Variable ${EMPTY} :FOR ${cookie} IN @{cookies} \ ${cookie_str}= Catenate SEPARATOR=; ${cookie_str} ${cookie.name}=${cookie.value} ${final_cookie}= String Strip ${cookie_str} # 清理开头可能存在的空字符
修改后重新执行脚本,检查请求头的Cookie字段,确认无前置空格即可解决该错误。
内容的提问来源于stack exchange,提问作者MN Ali
相关产品推荐
相关产品推荐

