Curl常用指令
Curl 介绍
curl 是一个跨平台的命令行工具(同时还有对应的编程库 libcurl,用于在代码中集成curl功能),全称是 Client URL,简单来说,它就是一个在终端里完成网络数据交互的工具,不需要打开浏览器,就能直接发送网络请求、获取或传输数据。
它的兼容性极强,Linux、Mac 系统通常自带,Windows 10 及以上版本也默认集成,老版本 Windows 只需简单安装就能使用,是开发、测试、运维人员日常工作中的高频工具。
用途
- 快速测试接口是否可用(比如后端接口开发完成后,先不用写前端,直接用curl验证);
- 获取网页源码、接口返回数据;
- 下载/上传文件(比如从公开地址下载压缩包、文档);
- 模拟各种 HTTP 请求方法(GET、POST、PUT、DELETE 等);
- 携带自定义请求头(比如 Token、Content-Type 等,满足接口的身份验证或格式要求)。
基础用法
直接在终端(Linux/Mac)或命令提示符(Windows)中执行
1. 直接发送 GET 请求
这是最简单的用法,不带任何额外参数,直接跟 URL,curl 会默认发送 GET 请求,并把返回结果直接输出在终端上。
1 | # 示例:访问百度首页,获取其HTML源码 |
执行后,终端会输出百度首页的 HTML 代码,这就是该 URL 返回的响应数据。
2. 下载文件:-o 或 -O 参数
如果不想把结果输出在终端,而是保存为文件,就用这两个参数,区别在于是否自定义文件名:
-o(小写):指定自定义文件名保存-O(大写):使用远程文件的原始文件名保存
1 | # 示例1:把百度首页源码保存为 local-baidu.html(自定义文件名) |
3. 发送 POST 请求:-d 参数
很多接口(比如登录、注册)需要用 POST 方法提交数据,这时候用 -d 参数传递请求体数据(键值对格式),可选 -X POST 明确指定请求方法(有些场景下 -d 会自动触发 POST 请求,可省略 -X POST)。
1 | # 示例:模拟提交登录表单,传递 username 和 password 两个参数 |
如果需要传递 JSON 格式的请求体,只需搭配 -H 参数指定 Content-Type 即可:
1 | # 示例:发送 JSON 格式的 POST 请求 |
4. 携带自定义请求头:-H 参数
很多接口需要身份验证(比如携带 Token)、指定数据格式,这时候用 -H 参数添加请求头,多个请求头可以叠加多个 -H。
1 | # 示例:携带 Token 验证身份,同时指定请求体为 JSON 格式 |
5. 忽略 SSL 证书验证
如果是本地测试接口、或者一些没有正规 SSL 证书的环境,curl 会因为证书验证失败而报错,这时候可以用 -k 参数忽略 SSL 证书验证(仅用于开发/测试环境,生产环境别用!!!)。
1 | # 示例:访问本地 HTTPS 接口,忽略 SSL 证书验证 |