我在this github link提供的Robot框架中使用请求库。该文档暗示如果可以通过CreateSession <url> headers={'header1':'value1'} ....
发送自定义标头
但是,当我这样做时,我得到一个错误&#34; ValueError:需要多于1个值才能解压&#34;
这有效
CreateSession SendCustomHeader http://myhost.com verify=False
这不是
CreateSession SendCustomHeader http://myhost.com headers={'header1':'value1'} verify=False
我试过各种各样的标题组合=&#39;标题1&#39;或{&#39; header1&#39;:&#39; value1&#39;}或&#39; header1&#39;:&#39; value1&#39;同样的错误
请求库代码RequestsKeywords.py
中似乎没有错误" self.builtin.log('Creating session: %s' % alias, 'DEBUG')
s = session = requests.Session()
s.headers.update(headers)
"
我不确定错误的来源,因此无法修复
任何有关排除故障的指示都表示赞赏
答案 0 :(得分:3)
你没有传递字典,你传递了一个看起来像字典的字符串。解决方案是创建一个合适的字典并将其传入。为此,Robot有一个Create Dictionary关键字。
*** Settings ***
| Library | Collections
*** Test Cases ***
| Example
| | ${headers}= | Create dictionary
| | ... | header1 | value1
| | ... | header2 | value2
| | CreateSession | SendCustomHeader | http://myhost.com
| | ... | header=${headers} | verify=False
答案 1 :(得分:-4)
根据Requests documentation,您可以将标题添加到Session对象中:
s = requests.Session()
s.auth = ('user', 'pass')
s.headers.update({'x-test': 'true'})