-
上传的option是 -T
比如我们向ftp传一个文件:curl -T localfile -u name:passwd ftp://upload_site:port/path/
当然,向http服务器上传文件也可以
比如curl -T localfile http://cgi2.tky.3web.ne.jp/~zzh/abc.cgi -
注意,这时候,使用的协议是HTTP的PUT method
http提交一个表单,比较常用的是POST模式和GET模式
GET模式什么option都不用,只需要把变量写在url里面就可以了
curl http://www.yahoo.com/login.cgi?user=nickwolfe&password=12345
而POST模式的option则是 -d
curl -d "user=nickwolfe&password=12345" http://www.yahoo.com/login.cgi
就相当于向这个站点发出一次登陆申请 -
POST模式下的文件上的文件上传,比如
<form method="POST" enctype="multipar/form-data" action="http://cgi2.tky.3web.ne.jp/~zzh/up_file.cgi">
<input type=file name=upload>
<input type=submit name=nick value="go">
</form>
这样一个HTTP表单,我们要用curl进行模拟,就该是这样的语法:
curl -F upload=@localfile -F nick=go http://cgi2.tky.3web.ne.jp/~zzh/up_file.cgi
-
https的时候使用本地证书,就可以这样
curl -E localcert.pem https://remote_server
还可以用curl通过dict协议去查字典
curl dict://dict.org/d:computer -
用curl命令,post提交带空格的数据,分开传参
curl -D cookie -d "username=abcdef" -d "password=abc efg" http://login.xxx.com/ -
option: -D 这个是把http的response里面的cookie信息存到一个的文件中去
url -x 123.45.67.89:1080 -o page.html -D cookie0001.txt http://www.linuxidc.com -
下一次访问的时候,如何继续使用上次留下的cookie信息呢?很多网站都是靠监视你的cookie信息,来判断你是不是不按规矩访问他们的网站的。
使用这个option来把上次的cookie信息追加到http request里面去: -b
curl -x 123.45.67.89:1080 -o page1.html -D cookie0002.txt -b cookie0001.txt http://www.linuxidc.com -
curl给我们提供了一个有用的option,可以让我们随意指定自己这次访问所宣称的自己的浏览器信息: -A
curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45.67.89:1080 -o page.html -D cookie0001.txt http://www.linuxidc.com -
服务端防盗链,curl提供了设定referer的option: -e
curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45.67.89:1080 -e "mail.linuxidc.com" -o page.html -D cookie0001.txt http://www.linuxidc.com
这样,就可以骗过服务器,你是从mail.linuxidc.com点击某个链接过来的了。












网友评论