如何将带有-T参数的curl命令正确转换为Postman请求
原可正常运行的curl命令如下:
curl -v -H "x-amz-server-side-encryption:aws:kms" -T ~/Downloads/myfile.csv "http://example.com"
问题根源
你选择form-data格式上传文件的配置与curl的实际逻辑不匹配,是请求失败的核心原因。curl的-T参数作用是将指定文件的二进制内容直接作为整个请求体发送,不会做多部件表单封装。
正确Postman配置步骤
- 第一步:请求方法选择
PUT,请求URL填写http://example.com,和curl命令保持一致 - 第二步:配置请求头:切换到「Headers」标签页,新增一条头记录:键为
x-amz-server-side-encryption,值为aws:kms - 第三步:配置请求体(核心修正项):
- 切换到「Body」标签页,取消选中
form-data,改为选择binary选项 - 点击「选择文件」按钮,选中本地存储的
myfile.csv文件
- 切换到「Body」标签页,取消选中
- 第四步:点击「Send」按钮即可发起正常请求
原配置失败说明
form-data格式会自动对请求体做特殊封装:添加多部件分隔符、自动设置Content-Type为multipart/form-data、为文件内容添加表单字段名包裹,和curl命令直接透传文件二进制内容作为请求体的逻辑完全不同,服务端拿到不符合预期的请求内容就会返回错误。
内容的提问来源于stack exchange,提问作者Moshe Shaham
相关产品推荐
相关产品推荐

