昨天现场的浏览器崩溃了,楼主苦逼,就临时用了curl测试了下图片请求接口。今天总结下。算法
curl is a tool to transfer data from or to a server浏览器
curl是用在命令行和脚本进行传输数据到服务器或者从服务器传输数据的工具。安全
语法:curl [options] [URL...]服务器
参数:restful
参数 | 描述 |
---|---|
-V | 显示当前的curl版本 |
-# | 对发送和接收进行简单的进度bar展现 |
-0 | 强制使用HTTP 1.0协议 |
-1 | 强制使用TLS version 1.x |
-4 | 解析域名为ipv4地址(域名有多个ip时) |
-a | FTP/SFTP上传文件时,curl将追加到目标文件,而非覆盖 |
-A | 设置用户代理 |
-b | 设置cookies |
--basic | 使用HTTP Basic authentication |
--compressed | 使用curl支持的压缩算法请求压缩的响应, 若是请求的响应不是压缩的,curl抛出异常 |
--connect-timeout | 设置链接超时时间 |
-d | 用于post请求时表单提交数据, 请求类型将被设置为:application/x-www-form-urlencoded |
-e | 发送"Referer Page"到服务器 |
-F | form表单提交 |
-G | 使用get请求发送 -d参数指定的数据 |
-H | 增长Head头 |
-i | 在输出Head头(响应) |
-I | 只输出Head头(响应) |
--interface | 指定使用的网络接口 |
-k | 容许curl使用非安全的ssl链接而且传输数据(证书不受信) |
-K | 后接参数文件,参数文件中能够定义HTTP请求的相关的内容(URL、HEAD、DATA) |
--keepalive-time | 设置链接的保活时间 |
-L | curl自动重定向(3xx) |
--limit-rate | 特指最大的传输速率 |
-m | 设置整个操做的容许消耗的最大时间,对于在延时网络下的批量操做有利 |
--max-filesize | 容许下载文件的最大大小 |
-N | 禁用输出流缓冲区 |
--no-keepalive | 链接不保活 |
-o | 将响应数据输出到指定文件,后接文件参数 |
--retry | 发生瞬时错误时,curl将重试执行数据传输 |
--retry-delay | 延迟重试 |
--trace | dump出输入输出数据至文件 |
-v | 获取更多输入输出相关的内容,对于debug很是有用 |
-y或者--speed-time | 若是在speed-time期间,下载比speed-limit这个更慢,则下载废止 |
-Y或者--speed-limit | 若是在speed-time期间,下载比speed-limit这个更慢,则下载废止 |
接着看下下面的使用示例:cookie
// 使用-k参数忽略证书不受信问题,-b参数指定cookies,-i参数输出响应头 curl -ki -b "JSESSIONID=011F1B99963D28CF91E90C99A51B1E34; _i18n_locale=zh_CN" --compressed https://10.33.42.149/fas/human/uploadPic.action // -d参数指定post表单的数据, -o参数指定响应内容输出到指定文件 curl -kv -d "name=daniel skill=lou" https://10.33.42.149:443/cas/login -o output // -1指定tls版本1.x,-H指定请求头 curl -1 -ki -e "https://10/33.42.149" -H "X-Custom-Header:lxy" https://10.33.42.149:443/cas/login // -L指定自动重定向 curl -kvL http://10.33.42.149 // -K指定请求的参数配置文件 curl -kvK ex // -e指定Referer curl -kv -e "https://10/33.42.149" -H "X-Custom-Header:lxy" https://10.33.42.149:443/cas/login