CURL命令参数

curl 是一个功能非常强大的命令行工具,用于在终端中进行网络请求(HTTP、HTTPS、FTP、SFTP、WebDAV 等)。下面是最常用的参数分类与示例说明

🧩 一、基本用法

curl [选项] [URL]

🌐 二、常用请求参数

参数 说明 示例
-X <命令> 指定请求方法(如 GET、POST、PUT、DELETE) curl -X POST http://example.com
-I 仅获取响应头(HEAD 请求) curl -I https://example.com
-L 自动跟随重定向 curl -L https://example.com
-k--insecure 忽略 SSL 证书验证(自签证书常用) curl -k https://example.com
-v 显示详细调试信息 curl -v https://example.com
-s 静默模式(不输出进度条或错误) curl -s https://example.com
-# 显示进度条 curl -# https://example.com

📤 三、上传与下载

参数 说明 示例
-O 以原文件名保存下载内容 curl -O https://example.com/file.zip
-o <文件名> 自定义输出文件名 curl -o local.zip https://example.com/file.zip
-T <文件> 上传文件(WebDAV / FTP) curl -T test.txt https://webdav.server.com/dir/
--upload-file <文件> 同上(更直观) curl --upload-file test.txt https://example.com/upload/

🔑 四、认证与登录

参数 说明 示例
-u <用户名:密码> HTTP 基本认证 curl -u admin:123456 https://example.com
--digest 启用 HTTP Digest 认证 curl --digest -u user:pass https://example.com
-H "Authorization: Bearer <token>" 传递 Bearer Token curl -H "Authorization: Bearer abc123" https://api.example.com

📦 五、发送数据(POST/PUT)

参数 说明 示例
-d <数据> 发送表单数据(默认 application/x-www-form-urlencoded curl -d "user=admin&pass=123" https://example.com/login
--data-urlencode 自动 URL 编码数据 curl --data-urlencode "msg=你好 世界" https://example.com
-F <字段=@文件> 上传文件表单(multipart/form-data curl -F "file=@test.jpg" https://example.com/upload
-H "Content-Type: application/json" -d '{"key":"value"}' 发送 JSON 数据 curl -H "Content-Type: application/json" -d '{"a":1}' https://example.com/api

🧱 六、自定义请求头

参数 说明 示例
-H "<Header>: <值>" 添加 HTTP 请求头 curl -H "User-Agent: MyApp/1.0" https://example.com
-e <URL> 设置 Referer curl -e https://google.com https://example.com
-A <字符串> 自定义 User-Agent curl -A "Mozilla/5.0" https://example.com

📡 七、代理与网络设置

参数 说明 示例
-x <代理>--proxy 使用代理 curl -x socks5://127.0.0.1:1080 https://example.com
--proxy-user <用户名:密码> 代理认证 curl -x http://proxy:8080 --proxy-user user:pass https://example.com
--connect-timeout <秒> 设置连接超时 curl --connect-timeout 10 https://example.com
--max-time <秒> 请求总超时 curl --max-time 30 https://example.com

🧾 八、输出与调试

参数 说明 示例
-w "<格式>" 自定义输出信息(如耗时、状态码) curl -w "code:%{http_code}\ntime:%{time_total}\n" -o /dev/null -s https://example.com
-D <文件> 保存响应头到文件 curl -D headers.txt https://example.com
--trace <文件> 保存完整调试日志 curl --trace trace.log https://example.com

🧰 九、WebDAV 相关常用命令

功能 示例
上传文件 curl -T file.txt -u user:pass https://dav.example.com/path/
下载文件 curl -O -u user:pass https://dav.example.com/path/file.txt
删除文件 curl -X DELETE -u user:pass https://dav.example.com/path/file.txt
创建目录 curl -X MKCOL -u user:pass https://dav.example.com/path/newdir/
移动文件 curl -X MOVE -u user:pass -H "Destination: https://dav.example.com/path/newfile.txt" https://dav.example.com/path/oldfile.txt