<aside> 💡 在Linux系统中,curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载操作,是综合传输工具,习惯上称url为下载工具。
</aside>
<aside> 💡 post请求 -x POST , -d "{}" 传参
</aside>
curl [option] [url]
标准输出
[root@ss-server ~]# curl <https://www.baidu.com>
如果只想要显示 HTTP 头,而不显示文件内容,可以使用 -I 或 --head 选项
[root@ss-server ~]# curl --head <https://www.baidu.com>
[root@ss-server ~]# curl -I <https://www.baidu.com>
显示一次http通信的整个过程,包括端口连接和http request头信息
[root@ss-server ~]# curl -v www.sina.com
## 更加详细
[root@ss-server ~]# curl --trace output.txt www.sina.com
使用curl进行认证
使用curl选项 -u 可以完成HTTP或者FTP的认证,可以指定密码,也可以不指定密码在后续操作中输入密码:
# curl -u user:pwd <http://man.linuxde.net>
# curl -u user <http://man.linuxde.net>
发送表单信息有GET和POST两种方法。
GET
跟正常的请求一样,追加在请求地址后即可
[root@ss-server ~]# curl example.com/form.cgi?data=xxx
[root@ss-server ~]# curl <http://example.com/form.cgi?data=xxx>
POST
POST方法必须把数据和网址分开,curl就要用到**--data参数或-d参数**。
[root@ss-server ~]# curl -X POST --data "data=xxx" <http://example.com/form.cgi>
[root@ss-server ~]# curl -X POST -d "data=xxx" <http://example.com/form.cgi>
在使用-d的情况下,如果省略 -X,则默认为 POST 方式:
[root@ss-server ~]# curl -d "userName=kevin&passwd=123456" <http://www.example.com/login>
强制使用GET方式
# curl -d "somedata" -X GET <http://www.example.com/api>
# curl -d "somedata" -G <http://www.example.com/api>