cURL是一个强大的命令行工具,用于使用url传输数据。它支持多种协议,包括HTTP,HTTPS,FTP等等。让我们探索20个基本技巧,帮助您精通cURL。

2025.08 天津宝坻·广济寺 寺猫

1.基本的GET请求

使用cURL的最简单方法是获取网页:

1
curl https://example.com

使用案例: 快速检查网站是否已启动或查看其HTML源代码。

想象一下,您正在构建一个监控脚本,并且需要验证您的公司网站是否正在响应。一个简单的curl命令给你一个即时的答案!

2.将输出保存到文件

而不是在屏幕上显示输出,将其保存到一个文件:

1
curl -o output.html https://example.com

使用案例: 下载文件或保存API响应以供以后分析。

把这想象成在课堂上做笔记 – 有时你想晚点复习材料,而不是只看一次。当您需要分析API响应或保存参考文档时,这是完美的。

3.跟随重定向

许多网站重定向到不同的url。使用-L要跟随并显示这些重定向:

1
curl -L https://github.com

使用案例: 访问使用重定向进行身份验证或内容分发的网站。

这就像进入建筑物时跟随标志一样-有时您需要经过多个门才能到达目的地!许多现代网站会将您从HTTP重定向到HTTPS或不同的域。

4.显示请求标头

看看幕后发生了什么:

1
curl -v https://example.com

使用案例: 调试连接问题或了解服务器如何响应。

把这想象成在汽车引擎盖下看。当某些事情不正常时,详细的输出会显示您和服务器之间的所有通信详细信息-对于故障排除非常有帮助!

5.发送自定义标题

将您自己的标头添加到请求中:

1
curl -H "User-Agent: My Browser" -H "Accept-Language: en-US" https://example.com

使用案例: 设置身份验证令牌或模仿浏览器行为。

这就像佩戴正确的ID徽章来访问建筑物的不同区域。许多api需要特定的标头进行身份验证,并且网站可能会根据您的用户代理显示不同的内容。

6.POST请求

将数据发送到服务器:

1
curl -X POST -d "name=John&age=25" https://example.com/submit

使用案例: 提交表单或向api发送数据。

就像填写纸质表格并提交一样,POST请求允许您将信息发送到服务器。这对于创建资源或通过api提交数据至关重要。

7.发布JSON数据

对于期望JSON的api:

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

使用案例: 与需要JSON有效负载的RESTful api交互。

现代web应用程序通常使用JSON-可以将其视为了解对话的正确语言。当您通过API创建新的用户账户时,您通常需要将数据格式化为JSON。

8.上传文件

将文件发送到服务器:

1
curl -F "file=@photo.jpg" https://example.com/upload

使用案例: 将图像或文档上传到web服务。

就像将文件附加到电子邮件一样,这可以让您将文件发送到服务器。非常适合将个人资料图片,文档或任何基于文件的内容上传到web应用程序。

9.使用身份验证

基本身份验证:

1
curl -u username:password https://example.com/secure

使用案例: 访问受密码保护的资源。

把这想象成用你的借书证来借书。许多api和网站都需要身份验证,这是提供凭据的最简单方法。

10.用进度条下载文件

查看下载进度:

1
curl -# -O https://example.com/largefile.zip

使用案例: 下载大文件时跟踪进度。

没有人喜欢盯着空白屏幕想知道事情是否正常!进度条就像看你的食物交付的状态-它让你放心,你的下载正在进行,并给你一个估计完成时间。

11.限制带宽

控制cURL使用的带宽:

1
curl --limit-rate 100K https://example.com/largefile.zip -O

使用案例: 下载大文件时避免网络饱和。

这就像以受控的速度驾驶,这样你就不会一次用完所有的汽油。在工作时间下载大文件时,限制带宽可确保您不会减慢其他人的internet连接速度。

12.使用cookie

发送cookie与您的请求:

1
curl -b "session=abc123" https://example.com/account

使用案例: 与网站交互时维护会话。

Cookie就像您在游乐园的腕带-它们会在多个请求中告诉网站您是谁。在访问需要登录会话的受保护页面时,这一点至关重要。

13.保存和加载cookie

从响应中保存cookie并在后续请求中使用它们:

1
2
curl -c cookies.txt https://example.com/login
curl -b cookies.txt https://example.com/account

使用案例: 自动化web抓取的登录过程。

这就像存储您的音乐会门票,以便您可以重新进入场地。首先,您登录并保存会话cookie,然后您可以通过在将来的请求中显示这些相同的cookie来访问受保护的资源。

14.设置超时

避免挂在慢速连接上:

1
curl --connect-timeout 10 --max-time 30 https://slow-server.example.com

使用案例: 使您的脚本更强大,以应对网络问题。

这就像决定你在放弃和回家之前要等一个朋友多久。设置超时可以防止您的脚本在服务器没有正确响应时无限期挂起。

15.重试失败的尝试

如果连接失败,则自动重试:

1
curl --retry 5 https://unstable-server.example.com

使用案例: 处理不可靠的网络状况或服务。

有时服务器就像繁忙的餐厅-如果你第一次找不到桌子,再试一次!此选项非常适合不可靠的连接或临时过载的服务器。

16.发送PUT/DELETE请求

对于RESTful API操作:

1
2
curl -X PUT -d '{"status":"active"}' https://api.example.com/users/123
curl -X DELETE https://api.example.com/users/123

使用案例: 在REST api上完成CRUD操作。

这些类似于文档编辑器上的 “更新” 和 “擦除” 按钮。PUT通常会更新现有资源,而DELETE会删除它们-使用现代api时必不可少的操作。

17.使用代理服务器

通过代理路由请求:

1
curl -x http://proxy.example.com:8080 https://target-site.com

使用案例: 测试受地理限制的内容或增强隐私。

代理就像在另一个国家的朋友给你邮寄一些你在当地无法得到的东西。这对于通过公司网络访问受区域限制的内容或路由请求非常有用。

18.忽略SSL证书错误

针对自签名证书进行测试:

1
curl -k https://self-signed.example.com

使用案例: 具有无效SSL证书的开发环境。

当你真正与员工一起工作时,可以把这看作是暂时忽略 “仅限员工” 的标志。在开发环境中,您经常使用curl通常会拒绝的自签名证书。

19.下载多个文件

一次下载多个文件:

1
curl -O https://example.com/file1.txt -O https://example.com/file2.txt

使用案例: 批量下载资源供离线使用。

这就像在教室前面的一次旅行中抓取多个讲义。当您需要下载多个相关文件时,这样可以避免编写多个命令。

20.创建配置文件

将您喜欢的选项存储在配置文件中:

1
2
3
4
# In ~/.curlrc
user-agent = "My Custom User Agent"
connect-timeout = 30
max-time = 60

使用案例: 跨会话标准化您的curl环境。

这就像按照您喜欢的方式设置办公桌一样。配置文件保存您的首选设置,因此您不必在每次运行curl命令时指定它们。

结论

cURL是一个非常通用的工具,可以处理几乎任何HTTP请求场景。这20个技巧应该给你一个坚实的基础,但cURL对于特定的用例有更多的选择。随着你对这些基础知识越来越熟悉,探索curl --helpman curl发现其他功能。

记住,练习是掌握cURL的关键。在终端中尝试这些示例,并尝试使用不同的选项来查看它们在实际情况下的工作方式。就像学习任何新技能一样,从基础开始,随着信心的增长,逐渐承担更复杂的任务!


本文译自:Mastering cURL: 20 Essential Tips for Beginners