欢迎各位兄弟 发布技术文章
这里的技术是共享的
curl
是 Linux 中强大的命令行工具,用于传输数据(支持 HTTP、HTTPS、FTP 等协议)。以下是一些常用参数详解及示例,帮助你快速掌握核心功能。
-X [METHOD]
指定 HTTP 请求方法(如 GET
, POST
, PUT
, DELETE
)。
bashcurl -X POST https://api.example.com/data
-H "Header: Value"
添加请求头(可多次使用)。
bashcurl -H "Content-Type: application/json" -H "Authorization: Bearer token" https://api.example.com
-d "data"
发送 POST 请求的请求体(默认 Content-Type: application/x-www-form-urlencoded
)。
bashcurl -d "user=admin&pass=123" https://example.com/login
JSON 数据示例:
bashcurl -d '{"key":"value"}' -H "Content-Type: application/json" https://api.example.com
-G
将 -d
的数据以查询参数形式附加到 URL(强制 GET 请求)。
bashcurl -G -d "q=linux" -d "page=1" https://example.com/search
(等效于 https://example.com/search?q=linux&page=1
)
-o [文件名]
将响应保存到文件。
bashcurl -o output.html https://example.com
-O
下载文件并保留远程文件名(需 URL 中包含文件名)。
bashcurl -O https://example.com/file.zip
-i
显示响应头 + 响应体。
bashcurl -i https://example.com
-I
仅显示响应头(等价于 HEAD
请求)。
bashcurl -I https://example.com
-v
显示详细请求/响应过程(调试用)。
bashcurl -v https://example.com
-s
静默模式(不显示进度/错误信息)。
bashcurl -s https://example.com
-w "format"
自定义输出格式(如显示 HTTP 状态码)。
bashcurl -w "Status: %{http_code}\n" -o /dev/null https://example.com
-u user:password
基本认证(Basic Auth)。
bashcurl -u admin:123 https://example.com
--cacert [file]
指定 CA 证书验证 HTTPS。
bashcurl --cacert ca.pem https://example.com
-k
跳过 SSL 证书验证(不安全,仅测试用)。
bashcurl -k https://self-signed.example.com
-T [本地文件]
上传文件(如 FTP 或 PUT 请求)。
bashcurl -T file.txt https://example.com/upload
--limit-rate 100K
限制下载速度。
bashcurl --limit-rate 100K -O https://example.com/largefile.iso
-C -
断点续传。
bashcurl -C - -O https://example.com/bigfile.zip
-L
自动跟随重定向。
bashcurl -L https://example.com/redirect
-A "User-Agent"
设置 User-Agent。
bashcurl -A "Mozilla/5.0" https://example.com
-x [代理地址]
使用代理。
bashcurl -x http://proxy.example.com:8080 https://target.example.com
-F "key=@file"
上传文件( multipart/form-data )。
bashcurl -F "image=@photo.jpg" https://example.com/upload
模拟 API 请求
bashcurl -X POST \ -H "Content-Type: application/json" \ -d '{"name":"Linux", "version": "5.4"}' \ https://api.example.com/kernel
下载文件到指定路径
bashcurl -o /tmp/download.zip https://example.com/archive.zip
调试慢请求
bashcurl -v -w "DNS: %{time_namelookup}\nConnect: %{time_connect}\nTotal: %{time_total}\n" \ https://example.com
使用 Cookie
bashcurl -b "sessionid=123" https://example.com/profile
组合静默模式与输出格式化:
bashcurl -s -w "%{http_code}" -o /dev/null https://example.com
快速测试 HTTP 状态:
bashcurl -s -o /dev/null -I -w "%{http_code}" https://example.com
通过灵活组合这些参数,可以满足大多数网络请求需求。更多功能参考 man curl
或官方文档。