Skip to content

Curl 简明使用

TIP

在终端里很常用的一款调试工具

Curl 简介

什么是 Curl?

Curl 是一个开源的命令行工具和库(libcurl),用于在服务器与客户端之间传输数据。其特点包括:

  • 多协议支持:覆盖HTTP、HTTPS、FTP、SMTP、SFTP等。
  • 跨平台:可在Windows、Linux、macOS等系统运行。
  • 灵活性强:支持文件上传、Cookie管理、代理设置等高级功能。

为什么选择 Curl?

  • 轻量高效:无需图形界面,适合服务器环境和自动化脚本。
  • 调试利器:可详细输出请求与响应信息,快速定位问题。
  • 广泛应用:从REST API测试到网络爬虫开发,用途广泛。

Curl 命令参数详解

基础参数

记住大概的命令就好,进阶的方法也不是很常用。

参数作用示例
-X--request指定HTTP方法curl -X POST https://api.example.com
-H--header添加请求头curl -H "Content-Type: application/json" https://api.example.com
-d--data发送POST数据curl -d "name=John&age=30" https://api.example.com
-o--output保存响应到文件curl -o result.txt https://example.com
-v--verbose显示详细日志curl -v https://example.com
-L--location自动跟随重定向curl -L https://example.com/old-link

进阶参数

参数作用示例
-F--form上传文件(表单)curl -F "file=@photo.jpg" https://upload.example.com
-b--cookie发送Cookiecurl -b "session=abc123" https://example.com
-c--cookie-jar保存Cookie到文件curl -c cookies.txt https://example.com
-x--proxy使用代理curl -x http://proxy:8080 https://example.com
-k--insecure忽略SSL证书验证curl -k https://self-signed.example.com

实战示例

1. 测试REST API

bash
# 发送GET请求
curl -X GET https://api.example.com/users

# 发送JSON格式的POST请求
curl -X POST \
  -H "Content-Type: application/json" \
  -d '{"name": "John", "age": 30}' \
  https://api.example.com/users

2. 下载文件

bash
# 下载文件并保存为本地文件
curl -o linux.iso https://example.com/linux.iso

# 断点续传(需服务器支持)
curl -C - -O https://example.com/large-file.zip

3. 调试网络问题

bash
# 查看详细请求过程(包括握手过程)
curl -v https://example.com

# 分析请求耗时
curl -w "DNS解析耗时: %{time_namelookup}\n总耗时: %{time_total}\n" https://example.com

4. 身份验证

bash
# Basic认证
curl -u username:password https://api.example.com

# Bearer Token认证
curl -H "Authorization: Bearer YOUR_TOKEN" https://api.example.com

注意事项

  • 避免明文密码:不要在命令行中直接写入密码,改用环境变量或配置文件。
  • 证书验证:生产环境中避免使用 -k 参数,确保SSL/TLS安全。
  • 限速下载:防止占用过多带宽,使用 --limit-rate 控制速度:

如有转载或 CV 请标注本站原文地址