一个本地测试PHP应用编程接口的例子
最近写了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。
html xmlns=' http://blog . csdn . net/sinat _ 35861727?view mode=contents ' hearteta http-equiv=' Content-Type ' Content=' text/html;charset=utf8 ' meta name=' description ' content=' submit form ' title APi接口请求表单/title/headstyletype=' text/CSS '。key1 { width:100px} . value 1 { width :230 px;margin:0 0 0 10px}.main { margin:0 auto宽度width:450pxheight:autobackground:lightgraypadding:40px 40px}.请参考{ width:100pxheight:24px}.url { width:350px}/stylebodydiv类=' main ' form method=' post ' action=' post . PHP ' target=' _ blank ' pRequest地址:input class=' URL ' type=' text ' name=' curl ' placeholder=' API接口地址'/PP的参数1:input class=' key 1 ' type=' text ' name=' key 1 ' placeholder='参数名' input class=' value 1 ' type=' text ' name=' value 1 ' placeholder='参数值'/pp的参数2:输入类=' key1 '类型=' text '名称=' key2 '占位符='参数名'输入类=' value1 '类型=' text '名称=' value2 '占位符='参数值'/PP的参数3:输入类=' key1 '类型=' text '名称=' key3 '占位符='参数名'输入类=' value1 '类型=' text '名称=' value3 '占位符='参数值'/pp的参数4:输入类=' key1 '类型=' text '名称=' key4 '占位符='参数名'输入类=' value1 '类型=' text '名称=' value4 '占位符='参数值'/PP的参数5:输入类=' key1 '类型=' text '名称=' key5 '占位符='参数名'输入类=' value1 '类型=' text '名称=' value5 '占位符='参数值'/pp的参数6:input class=' key 1 ' type=' text ' name=' key 6 ' placeholder=' parameter name ' input class=' value 1 ' type=' text ' name=' value 6 ' placeholder=' parameter value '/Pp请求方法: select name=' method ' option value=' post ' post请求/optionoption value='GET'GET请求/option/select/ppstyle=' text-align 3360 center;' input class=' refer ' type=' submit ' value=' submit '/p/form/div/body/html 2,数据处理文件post.php
从post.html页面接收数据,发送请求并处理请求结果。首页的所有参数都是正文请求参数。如果需要Header参数,可以在此文件中手动添加。
?phpecho 'titleAPI接口请求响应/title ';/** * 设置网络请求配置* @param [string] $curl请求的URL * @param [bool] true || false是否安全超文本传输协议请求* @ param[string]$方法请求方式,默认GET * @ param[数组]$标题请求的页眉参数* @param [object] $data PUT请求的时候发送的数据对象* @ return[对象]返回请求响应*/function ihttp_request($curl,$https=true,$method='GET ',$header=array(),$data=null){//创建一个新卷曲资源$ ch=curl _ init();//设置统一资源定位器和相应的选项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);//发送邮政请求curl_setopt($ch,CURLOPT_POSTFIELDS,$ data);}//抓取统一资源定位器并把它传递给浏览器$ content=curl _ exec($ ch);if ($content===false) { return '网络请求出错: ' .curl _ error($ ch);exit();}//关闭卷曲资源,并且释放系统资源curl _ close($ ch);返回$ content}//检查是否是链接格式函数检查网址($ c _ URL){ $str='/^http(s?):\/\/(?[A-za-z0-9-].)[A-za-z]{2,4}(?[\/\?#][\/=\?%\-~`@[\]\':\.#\w]*)?$/';if(!preg_match($str,$ C _ URL)){ 0返回false} else { return true} } //检查是不是check_https($url){$str='/^https:/';if(!preg_match($str,$ URL)){ 0返回false } else { return true } } if($ _ SERVER[' REQUEST _ METHoD ']!='开机自检')退出('请求方式错误!');//发送请求function curl _ query(){ $ data=array($ _ POST[' key 1 ']=$ _ POST[' value 1 '],$ _ POST[' key 2 ']=$ _ POST[' value 2 '],$ _ POST[' key 3 ']=$ _ POST[' value 3 '],$ _ POST[' key 4 ']=$ _ POST[' value 4 '],$ _ POST[' key 5 ']=$ _ POST[' value 5 '],$ _ POST[' key 6 ']=$ _ POST[' key '数组去空$ data=array _ filter($ data);//帖子请求的参数如果(空($data))退出('请填写参数');$ URL=$ _ POST[' curl '];//API接口if(!checkUrl($url))退出('链接格式错误');//检查连接的格式$ is _ https=check _ https($ URL);//是否是安全超文本传输协议请求$ method=$ _ POST[' method '];//请求方式(GET POST)$ header=array();//携带页眉参数//$ header[]=' Cache-control :最大年龄=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('错误请求方法');} } curl _ query();写的很简单,功能也不是很全面,正常情况下的邮政和得到请求还是可以满足的,至少本地测试查看结果是没有问题的,有需要的小伙伴可下载代码下来,然后根据自己的需求自行修改完善功能。
下载地址:点击下载
以上这篇服务器端编程语言(专业超文本预处理器的缩写)本地进行应用程序接口接口测试的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
版权声明:一个本地测试PHP应用编程接口的例子是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。