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

Workato多部分表单请求为何将数组识别为文件?调用是否有误?

Workato多部分表单中数组被识别为文件的问题解析

问题背景

我尝试在POST多部分表单请求中,将数组作为哈希键的值发送,代码如下:

input = {"attribute" => ["Countries:India", "Category:Can"]}
post("url")
.request_format_multipart_form.payload(input)

该调用在Ruby HTTP及Postman中均可正常工作,但Workato处理后的表单数据和预期不符。

Postman生成的表单数据

----------------------------428750340837882951989223
Content-Disposition: form-data; name="attribute"
Category:Test
----------------------------428750340837882951989223
Content-Disposition: form-data; name="attribute"
Countries:India
----------------------------428750340837882951989223--

Workato生成的表单数据

------RubyFormBoundaryhokO7A27Xb6cdSEz
Content-Disposition: form-data; name="attribute"; filename="attribute"
Content-Type: Category:Can

Countries:India
------RubyFormBoundaryhokO7A27Xb6cdSEz--

疑问:为何Workato会将数组识别为文件?还是调用方式有误?

原因及解决方案

原因

Workato的request_format_multipart_form方法对数组值的默认解析逻辑和标准HTTP客户端不同。它会把数组解析为文件上传结构:将数组第一个元素设为Content-Type,第二个元素作为文件内容,自动添加filename参数,最终导致数组被识别为文件。

解决方法

需要按照Workato的多部分表单数组规范构造参数,给每个数组元素显式指定content和name字段:

input = {
  "attribute" => [
    { content: "Countries:India", name: "attribute" },
    { content: "Category:Can", name: "attribute" }
  ]
}
post("url")
.request_format_multipart_form.payload(input)

这样构造后,Workato会生成和Postman一致的表单数据——每个数组元素作为独立的form-data项,名称均为attribute,不会被识别为文件。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 07:24:19