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 是每个开发人员和系统管理员都应该熟练掌握的工具之一,它能够帮助你高效地进行网络请求和数据处理。