最近写API接口,每写一个接口,我自己需要先测试一下,看有没有语法错误,请求的数据对不对,但是很多都是POST请求,没法直接在浏览器中打开链接进行测试,所以必须要有个可以在本地发HTTP请求的模拟工具,模拟一下数据请求。

一开始我是这么干的,在本机wampserver运行目录下创建一个文件,在里边写Curl请求,进行模拟请求测试,但是每个接口需要的参数都不一样,我需要不断地修改请求的参数和API,很是不方便。到后来我的这个请求文件里边乱糟糟的数据,我都分不清了:

在网上找了找相关的工具,有不少在线测试的,比如:ATOOL在线工具、Apizza等等,看了下他们做的都很好,使用非常方便,界面很漂亮,服务也很周到。但是我在考虑安全问题,同时它给我返回的是原始的JSON格式的数据,我习惯于看数组格式的,比较直观。

于是乎,本着自己动手丰衣足食的理念,我就在本地写一个简易的API测试页面,提交数据之后在本地实现API请求测试功能,既不用考虑安全问题,又可以对结果随便转换。只需要两个文件就搞定,一个是填写数据的页面post.html,另一个是接收post.html页面传过来的数据并处理请求实现功能的post.php文件。

1.前端页面文件post.html

只是是简易的页面,没有复杂的布局,没有JS特效,暂时只写了6个参数,一般来说也够了,不够的可以自行添加。这里默认传的都是body请求参数,请求方式也只使用了GET和POST。

API接口请求表单

.key1{

width:100px;

}

.value1{

width:230px;

margin:0 0 0 10px;

}

.main{

margin:0 auto;

width:450px;

height:auto;

background:lightgray;

padding:40px 40px;

}

.refer{

width:100px;

height:24px;

}

.url{

width:350px;

}

请求地址:

参 数1:

参 数2:

参 数3:

参 数4:

参 数5:

参 数6:

请求方式:

POST请求

GET请求

2.数据处理文件post.php

接收post.html页面传过来的数据,并发送请求然后处理请求结果,前端页面传过来的都是Body请求参数,如果还需要Header参数的话,可以在这个文件手动添加上去。<?php

echo '

API接口请求响应';

/**

* 设置网络请求配置

* @param [string] $curl 请求的URL

* @param [bool] true || false 是否https请求

* @param [string] $method 请求方式,默认GET

* @param [array] $header 请求的header参数

* @param [object] $data PUT请求的时候发送的数据对象

* @return [object] 返回请求响应

*/

function ihttp_request($curl,$https=true,$method='GET',$header=array(),$data=null){

// 创建一个新cURL资源

$ch = curl_init();

// 设置URL和相应的选项

curl_setopt($ch, CURLOPT_URL, $curl); //要访问的网站

//curl_setopt($ch, CURLOPT_HEADER, false);

curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

if($https){

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

//curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true);

}

if($method == 'POST'){

curl_setopt($ch, CURLOPT_POST, true); //发送 POST 请求

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

}

// 抓取URL并把它传递给浏览器

$content = curl_exec($ch);

if ($content === false) {

return "网络请求出错: " . curl_error($ch);

exit();

}

//关闭cURL资源,并且释放系统资源

curl_close($ch);

return $content;

}

//检查是否是链接格式

function checkUrl($C_url){

$str="/^http(s?):\/\/(?:[A-za-z0-9-]+\.)+[A-za-z]{2,4}(?:[\/\?#][\/=\?%\-&~`@[\]\':+!\.#\w]*)?$/";

if (!preg_match($str,$C_url)){

return false;

}else{

return true;

}

}

//检查是不是HTTPS

function check_https($url){

$str="/^https:/";

if (!preg_match($str,$url)){

return false;

}else{

return true;

}

}

if($_SERVER['REQUEST_METHOD'] != 'POST') exit('请求方式错误!');

//发送请求

function curl_query(){

$data = array(

$_POST['key1'] => $_POST['value1'],

$_POST['key2'] => $_POST['value2'],

$_POST['key3'] => $_POST['value3'],

$_POST['key4'] => $_POST['value4'],

$_POST['key5'] => $_POST['value5'],

$_POST['key6'] => $_POST['value6']

);

//数组去空

$data = array_filter($data);//post请求的参数

if(empty($data)) exit('请填写参数');

$url = $_POST['curl'];//API接口

if(!checkUrl($url)) exit('链接格式错误');//检查连接的格式

$is_https = check_https($url); //是否是HTTPS请求

$method = $_POST['method'];//请求方式(GET POST)

$header = array();//携带header参数

//$header[] = 'Cache-Control: max-age=0';

//$header[] = 'Connection: keep-alive';

if($method == 'POST'){

$res = ihttp_request($url,$is_https,$method,$header,$data);

print_r(json_decode($res,true));

}else if($method == 'GET'){

$curl = $url.'?'.http_build_query($data);//GET请求参数拼接

$res = ihttp_request($curl,$is_https,$method,$header);

print_r(json_decode($res,true));

}else{

exit('error request method');

}

}

curl_query();

?>

写的很简单,功能也不是很全面,正常情况下的POST和GET请求还是可以满足的,至少本地测试查看结果是没有问题的,有需要的小伙伴可下载代码下来,然后根据自己的需求自行修改完善功能。

相关推荐:

php api接口调试,PHP进行API接口测试相关推荐

  1. 接口结构_适用于Mac系统的API接口调试应用

    Apifox 中文版是一款适用于 Mac 的API接口调试应用.官方介绍 Apifox = Postman + Swagger + Mock.Apifox 可以用于接口文档.接口调试.Mock.自动化 ...

  2. Paw for Mac v3.3.3 – API接口调试http客户端

    Paw是功能齐全的HTTP客户端,可让您测试和描述您构建或使用的API.它具有漂亮的本机macOS界面,可组成请求,检查服务器响应,生成客户端代码并导出API定义. Paw for Mac v3.3. ...

  3. api接口加密_谈谈API接口开发中的安全性如何解决

    如今各种API接口层出不穷,一个API的好与不好可以从很多方面来考量,其中"安全性"就是一个API接口最基本也是最重要的一个特点.本文就来跟大家聊聊关于API接口开发的安全性问题. ...

  4. 唯品会关键字搜索商品API接口(item_search-按关键字搜索唯品会商品API接口),唯品会API接口

    一.唯品会关键字搜索商品API接口(item_search-按关键字搜索唯品会商品API接口),唯品会API接口接口可获取到宝贝标题,宝贝价格,宝贝ID,宝贝图片,优惠价,宝贝链接,卖家昵称,店铺所在 ...

  5. 淘宝/天猫/1688拍立淘API接口(以图搜商品API接口,图片搜索API接口,图片搜索商品API接口)代码对接教程

    淘宝/天猫/1688拍立淘API接口(以图搜商品API接口,图片搜索API接口,图片搜索商品API接口)代码对接教程如下: 1.公共参数 名称 类型 必须 描述(接口代码教程wx19970108018 ...

  6. 京东推荐商品列表API接口-(item_recommend-获取推荐商品列表API接口),京东API接口

    一.京东推荐商品列表API接口-(item_recommend-获取推荐商品列表API接口),京东API接口代码对接如下: 1.请求参数: 名称 类型 必须 描述 key String 是 调用key ...

  7. 淘宝/天猫获取卖出的商品订单列表API接口,店铺订单API接口,店铺订单详情API接口

    一.淘宝/天猫获取卖出的商品订单列表API接口,店铺订单API接口,店铺订单详情API接口代码如下: 1.公共参数: 名称 类型 必须 描述 key String 是 调用key(必须以GET方式拼接 ...

  8. 京东商品详情页API接口、京东商品销量API接口、京东商品列表API接口、京东APP详情API接口、京东详情API接口,京东SKU信息接口

    京东商品详情页API接口.京东商品销量API接口.京东商品列表API接口.京东APP详情API接口.京东详情API接口,京东SKU信息接口,通过商品ID提取商品详情页各项数据,包含商品标题,sku i ...

  9. 京东商品评论API接口-(item_review-获得JD商品评论API接口),京东API接口

    一.京东商品评论API接口-(item_review-获得JD商品评论API接口),京东API接口代码对接如下: 1.公共参数 名称 类型 必须 描述 key String 是 调用key(必须以GE ...

最新文章

  1. php 派生类 数据库连接 单例模式 xhprof实测 高效连接
  2. python 删除第三方库_python 安装移动复制第三方库操作
  3. Maven基础与私服搭建
  4. 如何步入深度学习刷榜第一重境界
  5. Mac系统下安装PIL
  6. Oracle Schema Objects——Tables——TableType
  7. HDU - 6955 Xor sum tire树 + 贪心
  8. libevent项目分析(一) -- 准备阶段
  9. postgresql 数据库
  10. leetcode python 1
  11. python数据分析系列教程——Pandas全解
  12. iOS开发之Undefined symbols for architecture x86_64报错
  13. 图像处理之基础---ffmpeg 中的图像缩放
  14. 通过模板生成Excel表格——XLSTransformer
  15. python之whl文件解释与安装
  16. 免费下载 | ContextCapture分块OBJ模型合并与裁剪
  17. 保存的视频怎么去除水印
  18. 奋斗吧,程序员——第八章 衣带渐宽终不悔,为伊消得人憔悴
  19. (NeurIPS 2019) Learning Object Bounding Boxes for 3D Instance Segmentation on Point Clouds
  20. geodesic distance

热门文章

  1. DOS命令(系统错误5,拒绝访问)的解决方法
  2. 网站出现service unavailable的解决方法
  3. 如何使用npm重新安装应用程序的依赖项?
  4. 枚举可以被子类化以添加新元素吗?
  5. 使Chrome接受自签名的本地主机证书
  6. 请参阅:Chrome开发者工具中的悬停状态
  7. 清华大学 现代软件工程 结对编程项目 (一)
  8. 英巴卡迪诺新年战略:支持Linux提供中文手册
  9. 《HTML5游戏编程核心技术与实战》一2.6 其他全局属性
  10. 职场疑问:如何进行技术面试