平时不怎么用,参数就很难记住

没有任何参数就是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)大部分敲了一遍

这些只是相对用的比较多的参数,并不是全部的参数