curl是一个
命令行工具
,用于通过URL传输数据
,支持多种协议,如HTTP、FTP、SMTP
等。它可以用于从服务器获取数据
或将数据上传到服务器
。
操作截图
显示列说明
% | Total | % | Received | % | Xferd | AverageSpeed | Time | Time | Time | Current | |
---|---|---|---|---|---|---|---|---|---|---|---|
整个传输的百分比 | 总传输字节数 | 接收百分比 | 接收字节数 | 已传输的字节数百分比 | 已传输的字节数 | Dload | upload | Total | spent | Left | speed |
平均下载速度 | 平均上传速度 | 总时间 | 已传输时间 | 剩余时间 | 当前传输的状态信息,例如已传输的字节数、已花费的时间等 | ||||||
100 | 2381 | 100 | 2381 | 0 | 0 | 76806 | 0 |
选项说明
-o
或--output
:将输出保存到文件,而不是显示在终端上。-i
或--include
:在输出中包含响应头信息。-v
或--verbose
:显示详细的调试信息。-u
或--user
:指定用户名和密码进行身份验证。-X
或--request
:指定HTTP请求方法(如GET、POST等)。-H
或--header
:添加自定义的请求头信息。-d
或--data
:发送POST请求时,将数据作为请求体发送。-b
或--cookie
:发送cookie信息。-c
或--cookie-jar
:保存服务器返回的cookie信息。-r
或--range
:指定请求的字节范围。-f
或--fail-early
:在遇到错误时立即停止传输。-u
或--url
:指定要请求的URL。
其他选项可以参考curl的官方文档或使用man curl(推荐)
或者curl --help
命令查看完整的选项列表和说明。
发送请求
- 发送GET请求:
curl <URL>
- 发送POST请求:
curl -X POST -d 'key=value' <URL>
- 发送JSON数据:
curl -X POST -H 'Content-Type: application/json' -d '{"key":"value"}' <URL>
- 发送文件:
curl -X POST -F 'file=@filename.txt' <URL>
- 设置请求头:
curl -H 'HeaderName: HeaderValue' <URL>
更多使用场景
- 下载文件:可以使用curl命令下载各种类型的文件,如文本文件、图片、音频、视频等。例如,下载一个名为“example.txt”的文件,可以使用以下命令:
curl -O <URL>
- 上传文件:curl还可以用于上传文件到服务器。例如,将一个名为“localfile.txt”的文件上传到服务器上,可以使用以下命令:
curl -T localfile.txt <URL>
- 请求API:curl常用于与各种API进行交互,发送请求并获取响应。例如,使用curl向RESTful API发送GET请求,可以使用以下命令:
curl <URL>
- 测试网络连接:curl可以用于测试与远程服务器的连接是否正常。例如,测试与特定URL的连接,可以使用以下命令:
curl --connect-timeout <seconds> <URL>
- 发送POST请求:curl可以用于发送POST请求,将数据提交到服务器。例如,发送一个包含JSON数据的POST请求,可以使用以下命令:
curl -X POST -H "Content-Type: application/json" -d '{"key": "value"}' <URL>
- 跟踪重定向:curl可以自动跟踪服务器的重定向,获取最终的URL响应。例如,跟踪重定向到最终URL,可以使用以下命令:
curl -L <URL>
- 获取响应状态码:curl可以用于获取服务器的响应状态码,以验证请求是否成功。例如,获取响应状态码为200的URL,可以使用以下命令:
curl -w "%{http_code}\n" <URL>