curl HTTP客户端
cURL是Linux下最常用的命令行HTTP客户端工具,软件包括命令行工具curl
和开发库libcurl
,cURL发布于1998年,作者是瑞典程序员Daniel Stenberg。
cURL支持很多种应用层网络协议,但最常用的还是作为HTTP/HTTPS客户端。curl
命令的用途非常广泛,我们编写的Shell脚本经常使用curl
实现网络功能,调试一些网络服务时curl
也经常被用到。这篇笔记我们简单学习cURL命令行工具的用法。
基本用法
cURL工具支持非常多的命令行选项,这里我们以例子的形式进行介绍。
curl http://localhost/index.html
直接使用curl
命令访问一个URL,会对资源地址发起一个HTTP GET请求。执行后,访问的页面就会打印在终端中。
跳过HTTPS证书验证
curl -k https://localhost/index.html
-k
参数用于跳过HTTPS的证书验证,我们内网部署的一些服务可能使用的是自签名证书,此时用cURL工具调试时经常需要指定该参数。
打印HTTP请求的详细过程
curl -v http://localhost/index.html
-v
参数能够打印出HTTP请求的详细过程。
打印HTTP请求头
curl -H "Accept-Language: en-US" http://localhost/index.html
-H
参数用于指定HTTP请求头。
发送POST请求
curl http://localhost/api/v1/user -X POST -d "{\"username\": \"Tom\", \"age\": 18}"
上面命令发送了一个POST请求,数据部分以-d
参数指定,为JSON格式。
使用代理发送请求
-x
参数用于通过代理进行HTTP请求。
curl https://ifconfig.me -x socks5://127.0.0.1:10808
该参数对于常用的HTTP、HTTPS、Socks5代理协议均支持。
发送form-data格式的POST请求
上传文件时通常使用form-data
格式的POST请求,curl中可以使用-F
参数添加form-data
格式的表单字段。
curl http://localhost/upload -X POST -F "file=@test.jpg" -H "Content-Type: multipart/form-data"
curl
中@
是一个特殊符号,用来指定要上传的文件的路径,上面我们使用的是相对路径,相对的是当前终端的工作路径(即pwd
命令显示的路径),这里我们也可以使用绝对路径。
下载文件
下面例子我们通过cURL工具下载了data.zip
文件。
curl http://localhost/data.zip -o data.zip
-o
指定将返回数据下载下来,后面的参数指定了保存的文件名。
作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。