curl是Linux命令行中用于发送HTTP请求、测试API及下载文件的常用工具,支持GET/POST请求、文件下载、认证、自定义头及调试功能。

如果您需要在Linux系统中通过命令行发送HTTP请求、测试API接口或下载文件,则curl命令是常用且强大的工具。以下是实现这些功能的具体步骤:
一、发送基础GET请求
GET请求用于从服务器获取资源,是最常见的HTTP方法。curl默认使用GET方式,无需额外参数即可发起请求。
1、打开终端,输入curl后跟目标URL,例如:curl https://httpbin.org/get
2、如需查看响应头信息,添加-I参数:curl -I https://httpbin.org/status/200
3、若要保存响应体到文件,使用-o选项:curl -o response.html https://example.com
二、发送POST请求并传递数据
POST请求用于向服务器提交数据,常用于API接口测试。可通过不同方式传递表单数据、JSON或原始字符串。
1、以表单格式提交键值对,使用-d参数:curl -X POST -d "name=alice&age=30" https://httpbin.org/post
2、发送JSON数据时需指定Content-Type头:curl -X POST -H "Content-Type: application/json" -d '{"user":"bob","score":95}' https://httpbin.org/post
3、从文件读取JSON内容并发送:curl -X POST -H "Content-Type: application/json" -d @data.json https://httpbin.org/post
三、下载文件并控制行为
curl支持断点续传、限速、后台运行等下载控制功能,适用于大文件或不稳定网络环境。
1、直接下载文件并自动命名:curl -O https://example.com/file.zip
2、指定本地保存路径和文件名:curl -o /tmp/downloaded.pdf https://example.com/doc.pdf
3、启用断点续传(适用于已部分下载的文件):curl -C - -o archive.tar.gz https://example.com/archive.tar.gz
四、处理认证与自定义请求头
许多API要求身份验证或特定请求头,curl支持多种认证方式及任意Header设置。
1、使用Basic认证:curl -u username:password https://api.example.com/data
2、添加自定义请求头,如API密钥:curl -H "Authorization: Bearer abc123" -H "Accept: application/json" https://api.example.com/v1/users
3、忽略SSL证书验证(仅限测试环境):curl -k https://self-signed.example.com
五、调试与诊断请求过程
当请求异常或返回不符合预期时,可通过详细输出定位问题,包括请求头、响应头、重定向路径等。
1、显示完整的请求与响应过程:curl -v https://httpbin.org/get
2、仅显示响应头而不显示响应体:curl -s -D - -o /dev/null https://httpbin.org/status/404
3、跟踪重定向路径并显示每一步的URL:curl -L -w "Redirect URL: %{redirect_url}\n" -o /dev/null -s https://httpbin.org/redirect/3










