curl常用用法 原作者 : DarkRanger1
-v显示请求详细信息
curl www.baidu.com -v
-X 指定请求方式
GET请求
curl -X GET http://localhost:8080/search?data=123 # -X GET是可选的
多个参数的话 要用 & , 在linux的shell下会被解释成 curl 这个程序在后台运行, 所以用 "" 包起来
或者用 \& 来转义
curl -X GET "http://localhost:8080/search?data=123&name=lj" # -X GET是可选的
POST请求, 注意 x 必须是大写的
curl -X POST -d"data=123&key=456" http://localhost:8080/search -v
由于-d选项为使用POST方式向server发送数据,因此在使用-d的时候,可以省略-X POST。使用-d时,将使用Content-type:application/x-www-form-urlencoded方式发送数据。
如果想使用JSON形式post数据,可以使用-H指定头部类型
curl -H "Content-Type:application/json" -d '{"data":"123","key":"456"}' http://localhost:8080/search -v
如果想在请求的时候带上Cookie,可以这样
curl -H "Cookie:username=XXX" {URL}
-H增加头部信息
例子见以JSON方法POST数据
-I 查看HTTP 响应头信息
curl -I "http://www.taobao.com"
HTTP/1.1 200 OK #HTTP协议 HTTP 返回码
Server: Tengine
Date: Fri, 01 Nov 2013 12:37:53 GMT
Content-Type: text/html; charset=gbk
Connection: keep-alive
Vary: Accept-Encoding
Expires: Fri, 01 Nov 2013 13:37:53 GMT
Cache-Control: max-age=3600
Cookie相关
-c 存储cookie到文件
curl -d"name=zhangsan&password=123" http://localhost:8080/login -c ./cookie
使用用户名和密码登录系统,并将cookie信息存储在当前目录的cookie文件中
-b 携带cookie文件
curl http://localhost:8080/login -b ./cookie
‘-cookie’直接指定cookie
curl --cookie "name=zhangsan" http://localhost:8080/login
-F表单提交操作
curl可以通过-F命令来以Content-Type:multipart/form-data的形式向server post数据,该命令允许提交二进制文件等。可以使用@前缀来制定提交的内容为一个文件,也可以使用<符号来提交文件中的内容
curl -F prefile=@portrait.jpg https://example.com/upload.cgi
向服务器上传一个图片,图片的表单域名为profile,内容为protrait.jpg的二进制