4

Curl POST JSON并上传文件

 1 year ago
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.
neoserver,ios ssh client

Curl POST JSON并上传文件

curl是用于在本地计算机与远程服务器之间传输数据的命令行工具

Updated At 5 Jan 2023 2 min read
By myfreax
Curl POST JSON并上传文件

Curl POST JSON并上传文件

curl是用于在本地计算机与远程服务器之间传输数据的命令行工具。使用curl时您可以使用HTTP,HTTPS,SCP SFTPFTP等协议下载或上传数据。

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

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK