curl的使用
本文在写作过程中借鉴了阮一峰的博客:curl 的用法指南
一、curl 简介
- cURL:全称 client URL,客户端 URL 工具。
- cURL 是一种常用的命令行工具,主要用来请求 Web 服务器,也可以用来下载文件。
- 一般情况下,Linux/Windows/Mac 系统都默认安装了 cURL 指令,所以我们可以直接使用。
二、使用指南
1️⃣. 发送各种方式的请求
-X
参数指定 HTTP 请求的方法。
-
发送 GET 请求(不携带数据)
curl www.example.com -
发送 GET 请求(携带数据,借助 -G 和 -d )
curl -G -d 'q=kitties' -d 'count=20' www.example.com -
发送 POST 请求(不携带数据)
curl -X POST www.example.com -
发送 POST 请求(携带数据:借助
-d
参数)curl -X POST -d '{"user":"123","pass":"456"}' www.example.com 另外,使用 -d 参数以后,HTTP 请求会自动加上标头 Content-Type : application/x-www-form-urlencoded,并且会自动将请求转为 POST 方法,因此可以省略-X POST。
curl -d '{"user":"123","pass":"456"}' www.example.com -
发送 PUT 请求
curl -X PUT www.example.com -
发送 DELETE 请求
curl -X DELETE www.example.com
2️⃣. 下载文件
-O
参数将服务器回应保存成文件,并将 URL 的最后部分当作文件名。
-
一般下载(默认路径 + 文件名):命令行处于哪一个目录,该指令就会将文件保存在哪。
curl -O www.example.com/123 -
进阶下载(指定下载路径 + 文件名):借助小写的
-o
参数,这里注意小写的 -o 要在前面。curl -o ./download/myIndex.html -O www.example.com -
断点续传(
-C -
标识续传)curl -C - -o ./download/myIndex.html -O www.example.com
3️⃣. 上传文件
-F
参数用来向服务器上传二进制文件。
-
一般上传:该命令会给 HTTP 请求加上标头 Content-Type: multipart/form-data ,然后将文件上传。
curl -F 'file=@old.png' baidu.com -
进阶上传:指定上传类型 + 重命名上传文件
curl -F 'file=@old.png;type=image/png;filename=new.png' baidu.com
4️⃣. Header 信息
-H
参数会在请求当中添加 Header 参数。
-I
参数会打印服务器返回的 HEAD 信息。
-
单个请求头
curl -H 'Accept-Language: en-US' www.example.com -
多个请求头
curl -H 'Accept-Language: zh-CN' -H 'accept: text/html' www.example.com -
设置 Referer 标头(用来规避一些网站的防盗链设置)
curl -H 'Referer: baidu.com' www.example.com -
打印服务器返回的 HEAD 信息
curl -I https://www.example.com
5️⃣. Cookie 管理
-c
参数保存服务器发送回来的 Cookie。
-b
参数向服务器发送 Cookie。
-
保存服务器返回的 Cookie 信息:命令行处于哪一个目录,Cookie文件就会保存在哪。
curl -c cookie.txt baidu.com -
向服务器发送 Cookie :
curl -b 'name=123&pass=456' baidu.com 或者
# 直接读取本地文件中的 Cookie 信息 curl -b cookie.txt baidu.com
6️⃣. 其他使用情况
-
-k
参数指定跳过 SSL 检测。curl -k https://www.example.com -
-L
参数让 HTTP 请求跟随服务器的重定向(curl 默认不跟随重定向)。curl -L baidu.com -
--limit-rate
参数限制访问速度,可作下载限速(默认单位是“字节”)。curl --limit-rate 2048 -O baidu.com -
-u
参数用来设置服务器认证的用户名和密码。curl -u 'admin:123456' baidu.com 上面命令设置用户名为 admin ,密码为 123456 ,然后自动为其加上 HTTP 标头 Authorization: Basic … 。
-
-v
参数输出通信的整个过程,用于调试。curl -v www.example.com
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~