平时不怎么用,参数就很难记住
没有任何参数就是GET请求
curl https://xiaolong22333.top
-A
设置ua头
curl -A 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36' https://xiaolong22333.top
-b
发送cookie
curl -b 'user:admin' https://xiaolong22333.top
多个cookie用分号隔开
curl -b 'user:admin;id:1' https://xiaolong22333.top
还可以读取本地文件的cookie
curl -b cookie.txt https://xiaolong22333.top
-c
将cookie写入文件
curl -c cookie.txt https://xiaolong22333.top
-d
发送POST请求
会自动加上http头Content-Type : application/x-www-form-urlencoded
curl -d 'username=admin&password=123456' https://xiaolong22333.top
可以读取本地文件内容然后POST发送
curl -d '@data.txt' https://xiaolong22333.top
--data-urlencode
等同于-d,区别在于会自动对发送的数据进行url编码
curl --data-urlencode 'username=admin&password=123456' https://xiaolong22333.top
-e
设置referer
curl -e 'https://www.baidu.com' https://xiaolong22333.top
-F
上传二进制文件
curl -F 'file=@test.png' https://xiaolong22333.top
默认会加http头Content-Type: multipart/form-data
可以指定MIME 类型
curl -F 'file=@test.png;type=image/png' https://xiaolong22333.top
还可以自定义文件名
curl -F 'file=@test.png;filename=shell.php' https://xiaolong22333.top
这样上传的是test.png,但文件名是shell.php
-G
使用GET发送数据
配合-d使用
curl -G -d 'user=admin' https://xiaolong22333.top
这样就是
https://xiaolong22333.top?user=admin
还可以配合--data-urlencode进行url后编码发送
curl -G --data-urlencode 'user=admin' https://xiaolong22333.top
-H
添加http头
curl -H 'Accept-Language: en-US' https://xiaolong22333.top
-i
打印返回包的http头
curl -i https://xiaolong22333.top
-I
发出HEAD请求,返回http头,没有网页源码
curl -I https://xiaolong22333.top
相当于--head
curl --head https://xiaolong22333.top
-k
跳过SSL检测
curl -k https://xiaolong22333.top
-L
跟随重定向
curl -L https://xiaolong22333.top
---limit-rate
限制 HTTP 请求和回应的带宽,模拟慢网速的环境
curl --limit-rate 200k https://xiaolong22333.top
上面命令将带宽限制在每秒 200K 字节
-o
将服务器的响应保存成文件,相当于wget
curl -o test.html https://xiaolong22333.top
-O
将服务器的响应保存成文件,并将url最后部分作为文件名
curl -O https://xiaolong22333.top/index.html
文件名为index.html
-s
不输出错误和进度信息
curl -s https://xiaolong22333.top
如果想让 curl 不产生任何输出,可以使用下面的命令
curl -s -o /dev/null https://xiaolong22333.top
-S
只输出错误信息
curl -S https://xiaolong22333.top
但我自己试了后发现还是会正常输出回显,怪诶
-u
设置服务器认证的用户名和密码
curl -u 'admin:123456' https://xiaolong22333.top
或者
curl -u https://admin:123456@xiaolong22333.top
这在http头中就是Authorization: Basic YWRtaW46MTIzNDU2
-v
输出通信的整个过程,用于调试
curl -v https://xiaolong22333.top
--trace
参数也可以用于调试,还会输出原始的二进制数据
curl --trace - https://xiaolong22333.top
-x
设置http请求代理
curl -x socks5://james:cats@myproxy.com:8080 https://www.example.com
如果没有指定代理协议,默认为 HTTP
-X
设置请求方法
curl -X PUT https://xiaolong22333.top
实际上就是跟着curl 的用法指南 - 阮一峰的网络日志 (ruanyifeng.com)大部分敲了一遍
这些只是相对用的比较多的参数,并不是全部的参数