🏠 首页 攻略 curl是什么?命令行里最强大的网络请求工具

curl是什么?命令行里最强大的网络请求工具

从下载文件到调试API,curl是开发者每天必用的瑞士军刀。一文讲透它的基本用法和进阶技巧。

一句话定位

curl 是一个命令行工具,用来让电脑向互联网发送请求、下载文件或上传数据。它的名字来自"client URL",就是帮你在终端里跟网页打交道的。

它是什么

想象一下,浏览器(比如 Chrome)是你访问网页的图形界面。curl 则是浏览器的命令行版本——没有按钮、没有地址栏,全靠输入命令来工作。

它支持 HTTP、HTTPS、FTP、SFTP、SMTP 等几十种协议。几乎所有 Linux 发行版和 macOS 都预装了 curl,Windows 用户也能轻松安装。

curl 诞生于 1997 年,作者 Daniel Stenberg 至今仍在维护。它是开源项目,全球数百万开发者在使用。

有什么用

日常场景:

  • 下载文件:curl -O https://example.com/file.zip
  • 查看网页内容:curl https://example.com
  • 测试 API 接口是否正常工作
  • 上传文件到服务器
  • 检查某个网站是否存活

开发者场景:

  • 调试 REST API,替代 Postman
  • 自动化脚本中发起网络请求
  • 批量下载资源
  • 模拟各种 HTTP 请求(GET、POST、PUT、DELETE)

说句实在话,会了 curl,你就不需要那么多 GUI 工具了。

怎么用

1. 最基本的 GET 请求

curl https://www.example.com

这行命令会把 example.com 的 HTML 页面内容打印到屏幕上。如果你只想看响应头(不包含页面内容),加 -I

curl -I https://www.example.com

2. 保存下载的文件

curl -O https://example.com/photo.jpg

-O 表示"按原文件名保存到本地"。如果指定文件名用 -o

curl -o my-photo.jpg https://example.com/photo.jpg

3. 发送 POST 请求

很多 API 需要你发 POST 请求,比如提交表单数据:

curl -X POST https://api.example.com/users \
  -H "Content-Type: application/json" \
  -d '{"name": "张三", "age": 25}'

-X POST 指定请求方法,-H 添加请求头,-d 发送数据体。

4. 带认证请求

curl -u username:password https://api.example.com/data

或者用 Bearer Token:

curl -H "Authorization: Bearer your-token-here" https://api.example.com/protected

5. 常用参数速查

参数作用
-v显示详细请求过程,调试神器
-s静默模式,不显示进度条
-L自动跟随重定向
-w "%{http_code}"只显示 HTTP 状态码
--connect-timeout 10连接超时 10 秒
-A "MyApp/1.0"自定义 User-Agent

一个实用小技巧

很多人不知道 curl 可以直接格式化 JSON 输出。配合 Python 一行搞定:

curl -s https://api.example.com/data | python3 -m json.tool

这样返回的 JSON 就会 nicely 缩进排版,看起来舒服多了。

总结

curl 就像命令行的万能插头——不管你要下载文件、调 API、还是检查网站状态,它都能搞定。学会这几个常用命令,日常开发效率至少提升一倍。

下次调试接口的时候,试试关掉 Postman,直接用 curl。你会发现命令行其实没那么可怕。

你平时用 curl 最多的场景是什么?留言区聊聊。