Curl常用指令
Whisper Lv5

Curl 介绍

curl 是一个跨平台的命令行工具(同时还有对应的编程库 libcurl,用于在代码中集成curl功能),全称是 Client URL,简单来说,它就是一个在终端里完成网络数据交互的工具,不需要打开浏览器,就能直接发送网络请求、获取或传输数据。

它的兼容性极强,Linux、Mac 系统通常自带,Windows 10 及以上版本也默认集成,老版本 Windows 只需简单安装就能使用,是开发、测试、运维人员日常工作中的高频工具。


用途

  1. 快速测试接口是否可用(比如后端接口开发完成后,先不用写前端,直接用curl验证);
  2. 获取网页源码、接口返回数据;
  3. 下载/上传文件(比如从公开地址下载压缩包、文档);
  4. 模拟各种 HTTP 请求方法(GET、POST、PUT、DELETE 等);
  5. 携带自定义请求头(比如 Token、Content-Type 等,满足接口的身份验证或格式要求)。

基础用法

直接在终端(Linux/Mac)或命令提示符(Windows)中执行

1. 直接发送 GET 请求

这是最简单的用法,不带任何额外参数,直接跟 URL,curl 会默认发送 GET 请求,并把返回结果直接输出在终端上。

1
2
# 示例:访问百度首页,获取其HTML源码
curl https://www.baidu.com

执行后,终端会输出百度首页的 HTML 代码,这就是该 URL 返回的响应数据。

2. 下载文件:-o-O 参数

如果不想把结果输出在终端,而是保存为文件,就用这两个参数,区别在于是否自定义文件名:

  • -o(小写):指定自定义文件名保存
  • -O(大写):使用远程文件的原始文件名保存
1
2
3
4
5
# 示例1:把百度首页源码保存为 local-baidu.html(自定义文件名)
curl -o local-baidu.html https://www.baidu.com

# 示例2:下载一个公开压缩包,用它原本的文件名保存(假设远程文件名叫 test.zip)
curl -O https://xxx.com/public/test.zip

3. 发送 POST 请求:-d 参数

很多接口(比如登录、注册)需要用 POST 方法提交数据,这时候用 -d 参数传递请求体数据(键值对格式),可选 -X POST 明确指定请求方法(有些场景下 -d 会自动触发 POST 请求,可省略 -X POST)。

1
2
# 示例:模拟提交登录表单,传递 username 和 password 两个参数
curl -d "username=test_user&password=123456" -X POST https://xxx.com/api/login

如果需要传递 JSON 格式的请求体,只需搭配 -H 参数指定 Content-Type 即可:

1
2
# 示例:发送 JSON 格式的 POST 请求
curl -d '{"username":"test_user","password":"123456"}' -H "Content-Type: application/json" -X POST https://xxx.com/api/login

4. 携带自定义请求头:-H 参数

很多接口需要身份验证(比如携带 Token)、指定数据格式,这时候用 -H 参数添加请求头,多个请求头可以叠加多个 -H

1
2
# 示例:携带 Token 验证身份,同时指定请求体为 JSON 格式
curl -H "Authorization: Bearer abc123456" -H "Content-Type: application/json" https://xxx.com/api/user/info

5. 忽略 SSL 证书验证

如果是本地测试接口、或者一些没有正规 SSL 证书的环境,curl 会因为证书验证失败而报错,这时候可以用 -k 参数忽略 SSL 证书验证(仅用于开发/测试环境,生产环境别用!!!)。

1
2
# 示例:访问本地 HTTPS 接口,忽略 SSL 证书验证
curl -k https://localhost:8080/api/test