php代码
<html>
<head>
<meta charset="utf-8">
<title>接口测试</title>
<link href="http://cdn.bootcss.com/bootstrap/3.2.0/css/bootstrap.min.css?1.1.6" rel="stylesheet">
<link href="http://cdn.bootcss.com/font-awesome/4.1.0/css/font-awesome.min.css?1.1.6" rel="stylesheet">
<link href="http://static.bootcss.com/www/assets/css/site.min.css?v3" rel="stylesheet">
<link href="http://static.bootcss.com/www/assets/ico/favicon.png" rel="shortcut icon">
<script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js?1.1.6"></script>
</head>
<body>
<?php
header('content-type:text/html;charset=utf-8');
function fly_curl($url, $postfields = null) {
$ch = curl_init();
curl_setopt($ch, curlopt_url, $url);
curl_setopt($ch, curlopt_useragent, 'mozilla/5.0 (compatible; msie 5.01; windows nt 5.1)');
curl_setopt($ch, curlopt_header, 0);
curl_setopt($ch, curlopt_failonerror, 0);
curl_setopt($ch, curlopt_returntransfer, 1);
//curl_setopt($ch,curlopt_httpheader,array("expect:"));
if (is_array($postfields) && 0 < count($postfields))
{
$postbodystring = "";
$postmultipart = false;
foreach ($postfields as $k => $v)
{
if("@" != substr($v, 0, 1))//判断是不是文件上传
{
$postbodystring .= "$k=" . urlencode($v) . "&";
}
else//文件上传用multipart/form-data,否则用www-form-urlencoded
{
$postmultipart = true;
}
}
unset($k, $v);
curl_setopt($ch, curlopt_post, 1);
if ($postmultipart)
{
curl_setopt($ch, curlopt_postfields, $postfields);
}
else
{
//var_dump($postbodystring);
curl_setopt($ch, curlopt_postfields, substr($postbodystring,0,-1));
}
}
$reponse = curl_exec($ch);
//return curl_getinfo($ch);
if (curl_errno($ch))
{
throw new exception(curl_error($ch),0);
}
else
{
$httpstatuscode = curl_getinfo($ch, curlinfo_http_code);
if (200 !== $httpstatuscode)
{
throw new exception($reponse,$httpstatuscode);
}
}
curl_close($ch);
return $reponse;
}
function microtime_float(){
list ($usec, $sec) = explode(" ", microtime());
return ((float) $usec + (float) $sec);
}
$start = $end = 0;
if (isset($_post['submit'])) {
if (strstr($_post['url'], '?')) {
$url = sprintf("%s&auth=%s", $_post['url'], $auth);
} else {
$url = sprintf("%s?auth=%s", $_post['url'], $auth);
}
$param = array();
if (isset($_post['param'])) {
foreach($_post['param'] as $k => $item) {
if (!empty($item['method']) && !empty($item['name'])) {
$param[$item['method']][$item['name']] = $item['value'];
}
}
}
if (isset($param['get']) && !empty($param['get'])) {
foreach ($param['get'] as $name => $value) {
$url = sprintf("%s&%s=%s", $url, $name, $value);
}
}
$post_data = null;
if (isset($param['post']) && !empty($param['post'])) {
$post_data = $param['post'];
}
$start = microtime_float();
$return = fly_curl($url, $post_data);
$content = json_decode(urldecode($return), true);
if ( ! $content) {
$content = $return;
}
$end = microtime_float();
}
?>
<p>
<p class="row row-offcanvas row-offcanvas-right">
<p class="col-xs-12 col-sm-12">
<p >
<p class="col-xs-1 col-lg-4">
<h1>接口测试</h1>
<p>
<form action="" method="post">
<b>请填url</b>:
<input value="<?php echo isset($_post['url'])?$_post['url']:'';?>" placeholder="填写完整地址,以http://开头" type="text" name="url" required><br>
<?php if (isset($_post['param']) && !empty($_post['param'])) :?>
<?php foreach ($_post['param'] as $k => $item) :?>
<?php if (!empty($item['method']) && !empty($item['name'])) :?>
<p>
<b>参数name</b>:
<input value="<?php echo $item['name'];?>" placeholder="请填写" type="text" name="param[<?php echo $k;?>][name]"><br>
<b>参数value</b>:
<input value="<?php echo $item['value'];?>" placeholder="请填写" type="text" name="param[<?php echo $k;?>][value]"><br>
<b>请求方式</b>:
<label><input <?php if($item['method']=='get'):?>checked<?php endif;?> value="get" type="radio" name="param[<?php echo $k;?>][method]">get</label>
<label><input <?php if($item['method']=='post'):?>checked<?php endif;?> value="post" type="radio" name="param[<?php echo $k;?>][method]">post</label><br />
<a href="#" onclick="del_param(this)">删除</a>
</p>
<?php endif;?>
<?php endforeach;?>
<?php endif;?>
<input type="button" name="add_param" id="add_param" value="添加参数" class="btn btn-lg btn-primary btn-block"><br />
<input type="submit" name="submit" value="测试" class="btn btn-lg btn-primary btn-block"><br />
</form>
</p>
</p>
<p class="col-xs-1 col-lg-8">
<?php
if (isset($_post['submit'])) {
echo "<pre>";
echo "请求时间:";
var_dump($end - $start);
echo "<br />请求url:";
isset($url) && var_dump($url);
echo "<br />请求参数:";
isset($param) && var_dump($param);
echo "<hr />结果:";
if (isset($content['result'])) {
echo "<br />code:";
var_dump($content['result']['code']);
echo "message:";
var_dump($content['result']['message']);
echo "data:";
var_dump($content['result']['data']);
} else {
echo $content;
}
echo "</pre>";
}
?>
</p>
</p>
</p>
</p>
<hr />
</p>
<p>
<p>
<nav>
<p>© company 2014</p>
</nav>
</p>
</p>
</body>
</html>
<script>
$("#add_param").click(function(){
var input_len = $("form input").size();
input_len++;
$(this).before('\
<p>\
<b>参数name</b>:\
<input value="" placeholder="请填写" type="text" name="param['+ input_len +'][name]"><br>\
<b>参数value</b>:\
<input value="" placeholder="请填写" type="text" name="param['+ input_len +'][value]"><br>\
<b>请求方式</b>:\
<label><input checked value="get" type="radio" name="param['+ input_len +'][method]">get</label>\
<label><input value="post" type="radio" name="param['+ input_len +'][method]">post</label><br />\
<a href="#" onclick="del_param(this)">删除</a>\
</p>\
');
});
function del_param(obj) {
$(obj).parent().remove();
}
</script>