测试api代码,简单的接口测试代码
<html lang="zh-CN"><head> <meta charset="utf-8"> <title>接口测试</title> <link href="http://cdn.bootcss.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet"> <link href="http://cdn.bootcss.com/font-awesome/4.1.0/css/font-awesome.min.css" 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"></script></head><body><?phpheader('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();}?> <div class="container"> <div class="row row-offcanvas row-offcanvas-right"> <div class="col-xs-12 col-sm-12"> <div class="row" > <div class="col-xs-1 col-lg-4"> <h1>接口测试</h1> <div class="thumbnail"> <form class="form-signin" action="" method="post"> <b>请填URL</b>: <input value="<?php echo isset($_POST['url'])?$_POST['url']:'';?>" class="form-control" 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'])) :?> <div class="thumbnail"> <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> </div> <?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> </div> </div> <div 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>"; } ?> </div> </div> </div> </div> <hr /> </div> <div class="blog-masthead"> <div class="container"> <nav class="blog-nav"> <p class="blog-nav-item">© Company 2014</p> </nav> </div> </div></body></html><script> $("#add_param").click(function(){ var input_len = $("form input").size(); input_len++; $(this).before('\ <div class="thumbnail">\ <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>\ </div>\ '); }); function del_param(obj) { $(obj).parent().remove(); }</script>测试api代码,简单的接口测试代码的更多相关文章
- HTML QQ聊天代码 简单的一行代码
简单的一行代码: <a href="tencent://message/?uin=173007740&Site=&Menu=yes">和17300774 ...
- API测试之Postman使用全指南(原来使用 Postman测试API如此简单)
Postman Postman是一个可扩展的API开发和测试协同平台工具,可以快速集成到CI/CD管道中.旨在简化测试和开发中的API工作流. Postman 工具有 Chrome 扩展和独立客户端, ...
- demo工程的清单文件及activity中api代码简单示例
第一步注册一个账户,并创建一个应用.获取app ID与 app Key. 第二步下载sdk 第三步新建工程,修改清单文件,导入相关的sdk文件及调用相应的api搞定. 3.1 修改清单文件,主要是加入 ...
- 06-编写Hibernate API编写访问数据库的代码,使用Junit进行测试
用到的注解: @Test:测试方法 @Before:初始化方法. @After:是否资源. 先执行Befere,然后执行Test,最后执行After. 第一步:新建一个Junit目录. 第二步:取名 ...
- API Studio 5.1.2 版本更新:加入全局搜索、支持批量测试API测试用例、读取代码注解生成文档支持Github与码云等
最近在EOLINKER的开发任务繁重,许久在博客园没有更新产品动态了,经过这些日子,EOLINKER又有了长足的进步,增加了更多易用的功能,比如加入全局搜索.支持批量测试API测试用例.读取代码注解生 ...
- 让 API 测试变的简单。
做开发已经四年有余了,之前在接口测试的时候最开始用的自己写的测试类进行测试,后来接触到了 postman 和 swagger ,虽然用起来比自己写的强太多了,但是总觉得差点事儿. 一方面是 postm ...
- 【sklearn决策树算法】DecisionTreeClassifier(API)的使用以及决策树代码实例 - 鸢尾花分类
决策树算法 决策树算法主要有ID3, C4.5, CART这三种. ID3算法从树的根节点开始,总是选择信息增益最大的特征,对此特征施加判断条件建立子节点,递归进行,直到信息增益很小或者没有特征时结束 ...
- C# 防止同时调用=========使用读写锁三行代码简单解决多线程并发的问题
http://www.jb51.net/article/99718.htm 本文主要介绍了C#使用读写锁三行代码简单解决多线程并发写入文件时提示"文件正在由另一进程使用,因此该进程无 ...
- DCGAN 代码简单解读
之前在DCGAN文章简单解读里说明了DCGAN的原理.本次来实现一个DCGAN,并在数据集上实际测试它的效果.本次的代码来自github开源代码DCGAN-tensorflow,感谢carpedm20 ...
随机推荐
- 灵活QinQ配置
华为交换机灵活QinQ配置列子 配置vlan2 为内层vlan vlan100 为外层vlan #用户端 Gi // qinq vlan-translation enable port hybrid ...
- file以及文件大小转化问题
android 获取文件夹.文件的大小 以B.KB.MB.GB 为单位 public class FileSizeUtil { public static final int ...
- [问题2014A03] 复旦高等代数 I(14级)每周一题(第五教学周)
[问题2014A03] 设 \(A=(a_{ij})\) 为 \(n\,(n\geq 3)\) 阶方阵,\(A_{ij}\) 为第 \((i,j)\) 元素 \(a_{ij}\) 在 \(|A|\) ...
- BQ24296充电管理芯片使用过程中的注意事项
BQ24296遇到的一点问题 概述:BQ24296是TI出品的具有窄范围VDC控制.基于I2C通讯的最大支持3A充电电流的开关式电源路径管理芯片.可以轻松实现2A以上的大电流充电,能量转换效率达到90 ...
- 【转载】C++ 与“类”有关的注意事项总结(十二):按成员初始化 与 按成员赋值
原文:C++ 与"类"有关的注意事项总结(十二):按成员初始化 与 按成员赋值 一.按成员初始化(与构造函数和拷贝构造函数有关) 用一个类对象初始化另一个类对象,比如: Accou ...
- 特征创建:Reference Characteristic、Template
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- iOS - iOS 适配
前言 什么是适配: 适应.兼容各种不同的情况. iOS 开发中,适配的常见种类: 1)系统适配, 针对不同版本的操作系统进行适配. 2)屏幕适配,针对不同大小的屏幕尺寸进行适配. iPhone 的尺寸 ...
- 文档批量格式化之word技能
一.在条目末尾添加# Ctrl + H 然后将 ^p替换为#^p 二.繁体字转换为简体字 在word 审阅-->简转繁(繁转简)都可以相互互转 三.将表格的变成字典或者规则的字符串格式 结合Ex ...
- QQ(iOS)客户端的粘性动画效果
qq的app中要是有新的联系人发消息过来,相应联系人的cell右边会有一个红色的圆圈表示消息条数.如果去触碰那个圆圈,可以发现它竟然会跟着手指的移动而移动. 在一定范围内,手指离开屏幕,会发现红色圆圈 ...
- Evolutionary Computing: 2. Genetic Algorithm(1)
本篇博文讲述基因算法(Genetic Algorithm),基因算法是最著名的进化算法. 内容依然来自博主的听课记录和教授的PPT. Outline 简单基因算法 个体表达 变异 重组 选择重组还是变 ...