curl使用

这是我常用的参数,没涉及到的参数自行百度,我放几个链接,自己可以去看看。
阮一峰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请求 所以可以省略
posted @ 2020-07-08 11:15  komomon  阅读(433)  评论(0编辑  收藏  举报