curl
(1)curl url: 查看网页源码
curl -o[--output] filename url: 把网页保存下来,相当于wget
culr -O url: url必须具体到某个文件
curl -L 网址:自动跳转
curl -i url: 显示头信息,-I只显示头信息
curl -v url: 显示通信过程
curl --trace outputfile url: 更详细的通信过程
curl --trace-ascii outputfile url: 更详细的通信过程
outputfile如果为-则输出到stdout
(2)GET和POST: -d,--data
POST: 默认application/x-www-form-urlencoded
curl -d "user=xxx&password=xxx" http://www.yahoo.com/login.cgi
这种方法是参数直接在header里面的
也可以: curl -X POST -d "user=xxx&password=xxx" http://www.yahoo.com/login.cgi
如果数据没有经过表单编码,可以使用curl提供的编码: curl -X POST --data-urlencode "date=April 1" example.com/form.cgi
POST: application/json: curl -X POST -H 'Content-Type: application/json' example.com/form.cgi -d '{"hello": "world"}'
这种方法是json数据直接在body里面的
模拟表单提交数据: -F, --form
使用GET方法发送表单信息: curl example.com/form.cgi?para=xxx
(3)curl默认的HTTP方法是GET,使用-X, --request选择其他方法
-X POST
-X DELETE
(4)发送cookie: -b or --cookie
curl --cookie "name=xxx" url
至于具体的cookie的值,可以从http response头信息的'Set-Cookie'字段中得到
注: -b 后可跟文件, --cookie则不可以
-c cookie-file: 保存服务器返回的cookie到cookie-file文件
-b cookie-file: 使用cookie-file文件作为cookie信息进行请求
(5)添加头信息: -H or --header
curl --header "Content-Type:application/json" http://example.com
(6)HTTP认证: -u or --user
curl --user name:password http://example.com
(7)-I, --head: 只显示HTTP-header,经常用于测试连接本身
(8)-e: 伪造来源地址,有的网站会判断,请求来源地址
curl -e http://localhost http://www.sina.com.cn
(9)-#: 显示下载进度条
curl -# -O http://www.mydomain.com/linux/25002_3.html
(10)测试网页返回值(在脚本中,这是很常见的测试网站是否正常的用法)
curl -o /dev/null -s -w %{http_code} www.sina.com.cn