上一篇
curl命令使用技巧有哪些?
- 电脑教程
- 2025-06-21
- 3773
curl命令用于在命令行中传输数据,支持HTTP、HTTPS、FTP等多种协议,通过指定URL和选项(如
-O
下载、
-X
指定请求方法、
-H
添加请求头),可获取网页内容、测试API接口或上传下载文件。
什么是cURL?
cURL(Client URL)是一个强大的命令行工具,用于通过URL传输数据,它支持HTTP、HTTPS、FTP、FTPS等30多种协议,常用于测试API、下载文件、调试网络请求等场景,由于其跨平台(Windows/macOS/Linux通用)和开源特性,成为开发者必备工具。
安装cURL
Windows系统
- 方法1:下载官方二进制包
访问 cURL官网下载页,选择带SSL的Windows版本,解压后将curl.exe
所在路径添加到系统环境变量。 - 方法2:通过包管理器安装
若已安装 Chocolatey,运行:choco install curl
macOS系统
# 使用Homebrew安装 brew install curl # 验证安装(系统自带curl可能较旧) curl --version
Linux系统
# Debian/Ubuntu sudo apt install curl # CentOS/RHEL sudo yum install curl
基础命令语法
curl [选项] [URL]
常用选项:
-X [方法]
:指定HTTP方法(如GET
,POST
,PUT
)-H "头信息"
:添加请求头(如-H "Content-Type: application/json"
)-d "数据"
:发送POST请求体-o [文件名]
:将输出保存到文件-v
:显示详细请求/响应过程(调试用)-L
:自动跟随重定向
7个常用场景示例
场景1:获取网页内容
curl https://example.com
场景2:下载文件并保存
# 下载文件并重命名 curl -o logo.png https://example.com/images/logo.png # 使用原文件名下载(-O大写字母) curl -O https://example.com/data.zip
场景3:发送GET请求带参数
# 直接在URL添加参数 curl "https://api.example.com/users?id=123&type=admin" # 使用-H设置头信息 curl -H "Authorization: Bearer token123" https://api.example.com/profile
场景4:发送POST请求(JSON数据)
curl -X POST https://api.example.com/login -H "Content-Type: application/json" -d '{"username":"test", "password":"123456"}'
场景5:上传文件
curl -X POST https://example.com/upload -F "file=@/path/to/yourfile.jpg" -F "description=My image"
场景6:调试请求详情(-v参数)
curl -v https://example.com # 输出包含:请求头 >、响应头 <、SSL握手过程
场景7:处理Cookie
# 保存响应中的Cookie到文件 curl -c cookies.txt https://example.com/login # 使用Cookie发送请求 curl -b cookies.txt https://example.com/dashboard
高级技巧
使用代理
curl -x http://proxy-server:8080 https://example.com
限制下载速度
# 限速100KB/s curl --limit-rate 100K -O https://example.com/largefile.iso
断点续传
# 从第1000字节开始继续下载 curl -C 1000 -O https://example.com/bigfile.zip
忽略SSL证书验证(测试环境用)
curl -k https://self-signed-cert-site.com
安全注意事项
- 敏感信息防护:
避免在命令中直接暴露密码或API密钥,改用环境变量:curl -u $USERNAME:$PASSWORD https://api.example.com
- HTTPS优先:
始终对敏感请求使用https://
,确保数据加密传输。 - 验证响应完整性:
下载文件时用-H 'Accept: application/json'
明确期望的数据类型,避免反面注入。
故障排查
- 连接超时:
curl --connect-timeout 10 https://example.com
(设置10秒超时) - 无响应输出:
添加-i
参数显示响应头(如HTTP/2 404
状态码)。 - 中文乱码:
使用iconv
转码:curl https://example.com | iconv -f gbk -t utf-8
cURL的核心价值在于其灵活性:
- 快速测试API接口
- 自动化脚本中的数据传输
- 无需GUI的轻量级网络调试
掌握基础命令后,可通过curl --help
或查阅 官方文档 探索更多功能(如WebSocket支持、压缩传输等)。
引用说明参考 cURL官方文档、Mozilla开发者网络 及 RFC 9110 HTTP标准,实践示例已在 Linux 5.15 和 cURL 7.84 环境验证。