头文本添加到RobotFramework请求中的XML POST有效内容

时间:2014-03-12 01:17:28

标签: robotframework

虽然我已经创建了一个标题字典来传递给下面的POST方法,但是我在请求的XML POST主体中获得了额外的文本。我可以看到我创建的文件到达目的地并且授权标头很好。 (服务器返回错误的XML"错误而不是404或401,所以我知道请求到达那里就好了。) XML本身很好,所以问题在于头文本被添加到有效载荷中。

如何让RobotFramework只发送我的XML有效负载?

由于

RobotFramework请求

${result}=  RequestsLibrary.POST  my_session  ${requestURL}  headers=${headers}  files=${fileDictionary}

额外的文本添加到POST正文的序言中,导致XML解析器阻塞。开头和结尾的字母数字字符串以及额外的标题值。

--02f79864e37a402e8f70425edb9a9790
Content-Disposition: form-data; name="file1"; filename="file1"
Content-Type: application/octet-stream
<!-- XML Body -->
--02f79864e37a402e8f70425edb9a9790--

1 个答案:

答案 0 :(得分:1)

PEBKAC:Reader无法解析文档。首先,我应该在此调用中传递data =而不是files =。其次,我误解了RequestsLibrary的文档中的以下语句:

数据键值对的字典,它将被urlencoded并作为POST数据或作为原始内容发送的二进制数据发送

具体来说,我没有应用&#34;或&#34;正确的短语。万一其他人也错过了它,它是#(键值对词典......)或(二进制数据)。&#34; NOT&#34;键值对的字典或二进制数据的字典。&#34;

我疯狂地想弄清楚你为什么要使用二进制数据字典。我想,在强类型语言中有太多时间。关键是,当POST数据类似于表单数据时,您可以传递字典,或者您可以传递字符串(您可能希望通过OperatingSytem Get File命令分配)。一旦我意识到我应该只传递一个字符串值,那么这一切都在世界上。

感谢Bulkan让我直截了当。