curl
是一个非常强大的命令行工具,用于在命令行界面中传输数据。它支持多种协议,包括 HTTP、HTTPS、FTP、FTPS、SCP、SFTP、TFTP、DICT、TELNET、LDAP、LDAPS 和 FILE。使用 curl
,你可以发送请求到服务器并接收响应,非常适合于测试、调试 API、下载文件等场景。
基本用法
- 发送 GET 请求
bash复制代码
curl http://example.com
这条命令会发送一个 GET 请求到 http://example.com
,并显示服务器返回的响应。
- 下载文件
bash复制代码
curl -O http://example.com/file.zip
使用 -O
选项(大写的 O),curl
会自动将文件保存为远程服务器上指定的文件名。如果希望自定义文件名,可以使用 -o
选项:
bash复制代码
curl -o myfile.zip http://example.com/file.zip
- 发送 POST 请求
bash复制代码
curl -X POST -d "param1=value1¶m2=value2" http://example.com/resource
使用 -X POST
来指定请求方法为 POST,-d
选项用于发送数据。
- 设置 HTTP 头
bash复制代码
curl -H "Content-Type: application/json" -X POST -d '{"key":"value"}' http://example.com/resource
使用 -H
选项可以添加自定义的 HTTP 头部。
- 使用用户名和密码
对于需要认证的网站,可以使用-u
选项来提供用户名和密码:
bash复制代码
curl -u username:password http://example.com/protected
如果只想提供用户名,可以留空密码部分,curl
会提示你输入密码。
- 跟随重定向
默认情况下,curl
不会跟随 HTTP 重定向。使用-L
选项可以开启这一功能:
bash复制代码
curl -L http://example.com/redirect
进阶用法
curl
的功能远不止于此,它支持很多高级特性,比如使用代理、HTTPS 客户端证书、设置超时时间、限制下载速度、输出进度条等。由于篇幅限制,这里不一一列举,但你可以通过 curl --help
或 man curl
命令查看更多选项和用法。
总之,curl
是每个开发人员和系统管理员都应该熟练掌握的工具之一,它能够帮助你高效地进行网络请求和数据处理。