工具简介
curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。
它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这一类的图形界面工具。
参数简介
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| -v, --verbose 输出信息 -q, --disable 在第一个参数位置设置后 .curlrc 的设置直接失效,这个参数会影响到 -K, --config -A, --user-agent -e, --referer -K, --config FILE 指定配置文件 -L, --location 跟踪重定向 (H)
-s, --silent Silent模式。不输出任务内容 -S, --show-error 显示错误. 在选项 -s 中,当 curl 出现错误时将显示 -f, --fail 不显示 连接失败时HTTP错误信息 -i, --include 显示 response的header (H/F) -I, --head 仅显示 响应文档头 -l, --list-only 只列出FTP目录的名称 (F) -
-X, --request [GET|POST|PUT|DELETE|…] 使用指定的 http method 例如 -X POST -H, --header <header> 设定 request里的header 例如 -H "Content-Type: application/json" -e, --referer 设定 referer (H) -d, --data <data> 设定 http body 默认使用 content-type application/x-www-form-urlencoded (H) --data-raw <data> ASCII 编码 HTTP POST 数据 (H) --data-binary <data> binary 编码 HTTP POST 数据 (H) --data-urlencode <data> url 编码 HTTP POST 数据 (H) -G, --get 使用 HTTP GET 方法发送 -d 数据 (H) -F, --form <name=string> 模拟 HTTP 表单数据提交 multipart POST (H) --form-string <name=string> 模拟 HTTP 表单数据提交 (H) -u, --user <user:password> 使用帐户,密码 例如 admin:password -b, --cookie <data> cookie 文件 (H) -j, --junk-session-cookies 读取文件中但忽略会话cookie (H) -A, --user-agent 指定客户端的用户代理标头,user-agent设置,默认用户代理字符串是curl/[version] (H)
-C, --continue-at OFFSET 断点续转 -x, --proxy [PROTOCOL://]HOST[:PORT] 在指定的端口上使用代理 -U, --proxy-user USER[:PASSWORD] 代理用户名及密码
-T, --upload-file <file> 上传文件 -a, --append 添加要上传的文件 (F/SFTP)
-o, --output <file> 将输出写入文件,而非 stdout -O, --remote-name 将输出写入远程文件 -D, --dump-header <file> 将头信息写入指定的文件 -c, --cookie-jar <file> 操作结束后,要写入 Cookies 的文件位置
|
常用实例
GET 请求
1
| curl http://www.yahoo.com/login.cgi?user=XXXXXXXXX&password=XXXXXX
|
POST 请求
1 2 3
| curl -d "user=XXXXXXXX&password=XXXXX" http://www.yahoo.com/login.cgi // POST 文件 curl -F upload= $localfile -F $btn_name=$btn_value http://192.168.10.1/www/focus/up_file.cgi
|
分块下载
1 2 3 4 5 6 7
| curl -r 0 -10240 -o "zhao.part1" http://192.168.10.1/www/focus/zhao1.mp3 &\ curl -r 10241 -20480 -o "zhao.part1" http://192.168.10.1/www/focus/zhao1.mp3 &\ curl -r 20481 -40960 -o "zhao.part1" http://192.168.10.1/www/focus/zhao1.mp3 &\ curl -r 40961 - -o "zhao.part1" http://192.168.10.1/www/focus/zhao1.mp3 ... // 合并块文件 cat zhao.part* > zhao.mp3
|
ftp 下载
1
| curl -O ftp://用户名:密码@192.168.10.1:21/www/focus/enhouse/index.php
|
ftp 上传
1
| curl -T upload_test.php ftp://用户名:密码@192.168.10.1:21/www/focus/enhouse/
|