Curl POST JSON并上传文件
curl是用于在本地计算机与远程服务器之间传输数据的命令行工具
curl是用于在本地计算机与远程服务器之间传输数据的命令行工具。使用curl时您可以使用HTTP,HTTPS,SCP , SFTP和FTP等协议下载或上传数据。
Curl提供了许多选项,使您可以恢复上传/下载,限制带宽,代理支持,用户身份验证等。
Curl命令已预安装在大多数Linux发行版。要检查你的Linux发行版是否已安装Curl,请按快捷键CTRL+ALT+T
打开终端,键入curl
,然后按Enter。
安装 Curl
如果已安装curl,则系统将打印curl: try 'curl --help' or 'curl --manual' for more information
。
否则终端打印消息curl command not found curl
命令未找到。如果你尚未安装Curl,则可以使用发行版的软件包管理器安装curl
。
如果你的计算机运行的是基于Debian的Linux发行版,例如Ubuntu,Linux Mint等。请运行sudo apt install curl
命令安装curl。
如果你的计算机运行的是基于Redhat的Linux发行版,例如CentOS,Fedora等。请运行sudo yum install curl
命令安装Curl。
sudo yum install curl
sudo apt install curl
POST JSON并上传文件
在发送JSON数据并上传文件到服务器时,需要设置 header 的 Content-Type 为 multipart/mixed,指示 Curl 命令以混合的格式发送数据。
除了设置 header 的 Content-Type 之外,发送 JSON 格式数据是以 Curl 命令的 -F 选项指定要发送的 JSON 字符串,注意 JSON 需要使用单引号转义。
因此命令最终形式是 curl -X POST -H "Content-Type: multipart/mixed" -F blob=@文件路径 -F 'metadata=JSON 字符串;type=application/json' 。
curl -X POST -H "Content-Type: multipart/mixed" -F "blob=@/Users/username/Documents/bio.jpg" -F "metadata={\"edipi\":123456789};type=application/json" http://localhost:8080/api/v1/user/
仅上传文件
要使用 Curl 命令上传文件,只需要仅使用 Curl 命令的 -F 选项以键值对的形式name=content指定multipart MIME 数据。
但在使用 -F 选项指定文件时,需要在文件路径之前添加@
符号。文件可以是任何类型文件包括图像,文档等。
例如参数 -F 'image=@/home/user/Pictures/wallpaper.jpg'
指定Key是 image ,文件是 /home/user/Pictures/wallpaper.jpg。
curl -X POST -F 'image=@/home/user/Pictures/wallpaper.jpg' http://example.com/upload