当前位置:首页 > 电脑教程 > 正文

curl命令使用技巧有哪些?

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,运行:

    curl命令使用技巧有哪些?  第1张

    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

安全注意事项

  1. 敏感信息防护
    避免在命令中直接暴露密码或API密钥,改用环境变量:

    curl -u $USERNAME:$PASSWORD https://api.example.com
  2. HTTPS优先
    始终对敏感请求使用https://,确保数据加密传输。
  3. 验证响应完整性
    下载文件时用-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 环境验证。

0