如何将Python发送base64编码图片的POST请求转换为单条CURL命令
Python代码转对应CURL请求方案
你提供的Python代码逻辑是:读取指定路径的文件内容做Base64编码,将编码结果放在JSON体的key1.key2字段下,发送POST请求到目标地址。对应单条CURL命令可以直接通过Shell命令替换实现文件编码+JSON结构嵌入,写法如下:
Linux 环境命令
curl -X POST <my_host> \ -H "Content-Type: application/json" \ --data '{"key1": {"key2": "'"$(base64 -w 0 <你的文件路径>)"'"}}'
说明:-w 0参数用于禁用Linux base64命令默认的自动换行,避免JSON格式出错
macOS 环境命令
curl -X POST <my_host> \ -H "Content-Type: application/json" \ --data '{"key1": {"key2": "'"$(base64 -b 0 <你的文件路径>)"'"}}'
说明:macOS自带base64命令使用-b 0参数禁用自动换行
命令说明
- 自动携带的
Content-Type: application/json请求头,和Python中post方法json参数自动附加的请求头完全一致 - 命令中
$()部分为Shell命令替换,会先执行读取文件+Base64编码的逻辑,将结果直接嵌入到JSON结构的对应位置,和你Python代码的处理逻辑完全对齐 - 不需要使用
--data-binary参数,该参数适用于直接将文件内容作为请求体发送的场景,你当前需要把文件编码结果嵌入到指定JSON结构中,直接构造完整JSON作为--data参数即可
内容的提问来源于stack exchange,提问作者Sid Anand
相关产品推荐
相关产品推荐

