python-requests - 机器人框架 “multipart/form-data” 具有多个参数的 REST 请求

标签 python-requests robotframework

我正在尝试使用 requestslibrary 上传一些文件,目标是实现这个:

------WebKitFormBoundary61N9vqJ7380nh6iv
Content-Disposition: form-data; name="files"; filename="photo-2.jpeg"
Content-Type: image/jpeg


------WebKitFormBoundary61N9vqJ7380nh6iv
Content-Disposition: form-data; name="fileId"

b3duLWZpbGVzL2ZmZmZmZmZmYTQyNDVmODAvMjAxNTY*
------WebKitFormBoundary61N9vqJ7380nh6iv
Content-Disposition: form-data; name="extract"

false
------WebKitFormBoundary61N9vqJ7380nh6iv--

现在我有了这个,根据 this :

  ${data}=    Evaluate    {'files': open("C:/testautomation/resources/Assets/photo-2.jpeg", 'r+b'), 'extract': (None, 'false'), 'fileId': (None, 'b3duLWZpbGVzL2ZmZmZmZmZmYTQyNDVmODAvMjAxNTY*')}
  log  ${data}
  ${result}=  Post Request  rest  ${url}  headers=${HEADERS}  files=${data}

认为我唯一缺少的是第一部分中的“Content-Type:image/jpeg”,但我到底该如何添加呢?当前文件已上传,但不被视为图像文件。

最佳答案

答案是:

${data}=  Evaluate  {'files': ('photo-1.jpeg', open("C:/testautomation-robot/resources/Assets/photo-1.jpeg", 'r+b'), 'image/jpeg'), 'extract': (None, 'false'), 'fileId': (None, 'b3duLWZpbGVzL2ZmZmZmZmZmYTQyNDVmODAvMjAxNTY*')}

从这里找到一个例子:https://code.i-harness.com/en/q/bcfb9b

>>> url = 'http://httpbin.org/post'
>>> files = {'file': ('report.xls', open('report.xls', 'rb'), 'application/vnd.ms-excel', {'Expires': '0'})}
In the above, the tuple is composed as follows:

(filename, data, content_type, headers)

关于python-requests - 机器人框架 “multipart/form-data” 具有多个参数的 REST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54396828/

相关文章:

python - 无法像 Javascript 一样使用 RobotFramework 执行 Python .py 文件

list - 如何在Robot Framework中将全局变量或套件变量设置为列表?

python - 将参数传递给 requests.Session.get 引发 TypeError

python - 从 GET 请求中得到错误的响应

python - 无法获取 HTTPS URL(请求包)

selenium - Robot Framework : Wait Until Element Is Visible vs. 元素应该是可见的,使用哪个更好?

robotframework - 测试执行后如何在 Robot framework 日志文件中记录命令输出?

python - 使用python请求登录后无法下载文件

php - 将 PHP curl_setopt() 转换为 Python 请求和 CLI curl

python - 如何利用 Robot Framework 编写正则表达式来查找/替换各种日期字符串