接口模拟
<?php
#test.php
#绑定host: www.wolf.com
//curl 相关测试
session_start();
$n = isset($_GET['n']) ? intval($_GET['n']) : 1;
echo $n, PHP_EOL;
empty($_COOKIE) OR $output[] = 'COOKIE:'.print_r($_COOKIE, 1);
empty($_POST) OR $output[] = 'POST:'.print_r($_POST, 1);
array_walk($_SERVER, function (&$v, $k){
strpos($k, 'HTTP_CUSTOM') === 0 OR $v = '';
});
$output[] = 'CUSTOM_HEADER:'.print_r(array_filter($_SERVER), 1);
setCookie('cookie_jar', rand(100,1000), time() + 600);
echo implode(PHP_EOL, $output), file_get_contents('php://input');
url
url 支持多个与基本的正则,见下示例
curl http://www.wolf.com/work/test.php?n=[1-10]# n=1,n=2...n=10
curl http://www.wolf.com/work/test.php?n=[1-10:3] # 设定步长为3,n=1,n=4...
curl http://www.wolf.com/work/test.php?n={1,3}# n=1,n=3
#结合参数-0使用可以获取
curl http://{chdy,www}.wolf.com/work/test.php?n=[1,10] -o /tmp/_#1/_#2.log
Request
请求构造,诸如常用header ,cookie ,请求方式,长连接、超时控制、重定向、缓存控制
#######################
# -H --header 设定单个header,可以用多个。值为空的,结尾得用分号 -H "name;"
# -A --user-agent 后跟字符串
# -e --referer Referer URL
#######################
curl -H "custom-name:chdy" -A "Mozilla/chorm5.6" -e "www.baidu.com" -v http://www.wolf.com/work/test.php
#######################
# -c --cookie-jar 将服务端响应的cookie 写入到文件
# -b --cookie string(多个用分号间隔)或 cookie格式的文件 每个类型只有一个生效
#######################
curl -c /tmp/wolf.jar http://www.wolf.com/work/test.php
curl -b "ca=1;cb=2" -b /tmp//tmp/wolf.jar http://www.wolf.com/work/test.php
#######################
# -d --data http post(x-www-form)如 pa=1&pb=2, -G get 方式请求
# --data-binary --data-urlencode --data-ascii 用来传递原生的数据
# -m --max-time 最大执行秒数
# -L --location 自动跟踪重定向
# -K --config 加载配置文件,不用再选项中设定了
# --keepalive-time seconds 长连接秒数
# connect-timeout seconds 最大连接时长
#######################
curl -d "pa=1&pb=2" http://www.wolf.com/work/test.php
Response
响应构造,诸如保存结果,只保存响应头,定义输出内容
#######################
# -D --dump-header file 将响应头保存到指定文件
# -I --head 只输出header响应头
# -i --include 输出内容中包含header响应头
# -N --no-buffer 禁用缓存
# -o --output file 重定向输出内容到文件
#######################
curl -N -I http://www.wolf.com/work/test.php
Debug
是否静默输出、打开调试模式
#######################
# -s --silent 不输出任何内容
# -v --verbose 输出请求和响应的详细信息
#######################
curl -v http://www.wolf.com/work/test.php