这是我常用的参数,没涉及到的参数自行百度,我放几个链接,自己可以去看看。
阮一峰curl
https://baike.baidu.com/item/curl/10098606?fr=aladdin
https://catonmat.net/cookbooks/curl
主要用的参数:-F -H -G -d -i -L -o -v
curl POST 上传文件:
curl -F "myfile=@shell.php" http://www.uschinaecp.org/jQuery-File-Upload/server/php/files/upload.php"
curl post请求提交表单
curl -d "birthyear=1905&press=OK" www.hotmail.com/when/junk.cgi
curl发送get请求(不带任何参数)
curl https://www.baidu.com
curl "www.hotmail. com/when/junk.cgi?birthyear=1905&press=OK"
或者
curl -G -d ‘q=kitties‘ -d ‘count=20‘ https://google.com/search 指定get参数
参数:
上传文件时要用@+filename
要使用http加密传输,url前就加上https:// 一般不加直接www.xxx.com?xx=xx也可以
-A 指定UA,curl默认UA是curl/[version]
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://google.com
curl -A ‘‘ https://www.google.com //表示移除UA
-H 表示在请求头中附加参数,使用-H可以加UA 比如-H "‘User-Agent: php/1.0"
-b 指定cookie
eg:curl -b "foo=bar;foo2=bar2" https://www.google.com
curl -b cookies.txt https://www.google.com //cookie.txt中包含的是服务器保存在本机的cookie
-c cookie将服务器设置的cookie写入本地一个文件
curl -c cookie.txt https://www.google.com
-d 发送指定post要发送的数据体(参数/文件)
-d 发送文件时,要用@+filename
eg:curl -d ‘login=name&passwd=123‘ -X POST https://www.google.com
或者curl -d ‘login=name‘ -d ‘passwd=123‘ -X POST https://www.google.com
curl -d ‘@data.txt‘ https://www.google.com
注:使用-d参数后,HTTP请求会自动加上标头Content-Type: application/x-www-form-urlencoded,并且会自动将请求转为POST,所以-X POST可以省略
--data-urlencode 发送指定post要发送的数据体(参数/文件)
--data-urlencode等同于-d,区别在于会自动将发送的数据进行url编码
eg:curl --data-urlencode ‘comment=hello world‘ https://google.com/login
-e 设置请求头referer 字段
eg:curl -e ‘https:google.com?q=example‘ https://www.example.com
通过-H 添加 也一样 -H ‘Referer:https://google.com?q=example‘
-F 用来向服务器上传二进制文件
eg:curl -F ‘file=@photo.png‘ https://google.com
注:上述命令会自动给http请求头加上Content-type: multipart/form-data 然后将文件photo.png 作为file字段上传
-F参数可以指定 MIME 类型。
$ curl -F ‘file=@photo.png;type=image/png‘ https://google.com/profile
上面命令指定 MIME 类型为image/png,否则 curl 会把 MIME 类型设为application/octet-stream。
-F参数也可以指定文件名。
$ curl -F ‘file=@photo.png;filename=me.png‘ https://google.com/profile
上面命令中,原始文件名为photo.png,但是服务器接收到的文件名为me.png。
-G 参数用来构造 URL 的查询字符串。
$ curl -G -d ‘q=kitties‘ -d ‘count=20‘ https://google.com/search
上面命令会发出一个 GET 请求,实际请求的 URL 为https://google.com/search?q=kitties&count=20。如果省略--G,会发出一个 POST 请求。
如果数据需要 URL 编码,可以结合--data--urlencode参数。
$ curl -G --data-urlencode ‘comment=hello world‘ https://www.example.com
-H 参数添加 HTTP 请求的标头。
-i 打印服务器回应的HTTP标头
eg:curl -i https://www.example.com
-k 跳过SSL检测
eg:$ curl -k https://www.example.com 上面命令不会检查服务器的 SSL 证书是否正确。
-L 参数会让http请求跟随服务器重定向,curl默认不跟随重定向
eg:curl -L -d "tweet=hi" https://www.google.com -d是post参数get参数要用-G -d ...
-o 将服务器返回内容保存成文件,等同于wget
eg:curl -o html.html https://www.google.com
-v 输出通信的详细过程
-X 指定http请求方式
使用-d --data-encode 时会自动转为post请求 所以可以省略