Curl POST JSON并上传文件
source link: https://www.myfreax.com/curl-post-json-and-upload-file/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Curl POST JSON并上传文件
curl是用于在本地计算机与远程服务器之间传输数据的命令行工具
Curl POST JSON并上传文件
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
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK