PHP调用接口API封装的例子
GET:
/** *通过URL获取页面信息 *@param$url地址 *@returnmixed返回页面信息 */ functionget_url($url) { $ch=curl_init(); curl_setopt($ch,CURLOPT_URL,$url);//设置访问的url地址 curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0); curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//不输出内容 $result=curl_exec($ch); curl_close($ch); return$result; }
POST:
/** *模拟POST提交 *@paramstring$url地址 *@paramstring$data提交的数据 *@returnstring返回结果 */ functionpost_url($url,$data) { $curl=curl_init();//启动一个CURL会话 curl_setopt($curl,CURLOPT_URL,$url);//要访问的地址 curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);//对认证证书来源的检查 curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);//从证书中检查SSL加密算法是否存在 curl_setopt($curl,CURLOPT_USERAGENT,'Mozilla/5.0(compatible;MSIE5.01;WindowsNT5.0)');//模拟用户使用的浏览器 //curl_setopt($curl,CURLOPT_FOLLOWLOCATION,1);//使用自动跳转 //curl_setopt($curl,CURLOPT_AUTOREFERER,1);//自动设置Referer curl_setopt($curl,CURLOPT_POST,1);//发送一个常规的Post请求 curl_setopt($curl,CURLOPT_POSTFIELDS,$data);//Post提交的数据包x curl_setopt($curl,CURLOPT_TIMEOUT,30);//设置超时限制防止死循环 curl_setopt($curl,CURLOPT_HEADER,0);//显示返回的Header区域内容 curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);//获取的信息以文件流的形式返回 $tmpInfo=curl_exec($curl);//执行操作 if(curl_errno($curl)) { echo'Errno'.curl_error($curl);//捕抓异常 } curl_close($curl);//关闭CURL会话 return$tmpInfo;//返回数据 }
GET&&POST:
/** *CURL请求 *@param$url请求url地址 *@param$method请求方法getpost *@paramnull$postfieldspost数据数组 *@paramarray$headers请求header信息 *@parambool|false$debug调试开启默认false *@returnmixed */ functionhttpRequest($url,$method,$postfields=null,$headers=array(),$debug=false){ $method=strtoupper($method); $ci=curl_init(); /*Curlsettings*/ curl_setopt($ci,CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_0); curl_setopt($ci,CURLOPT_USERAGENT,"Mozilla/5.0(WindowsNT6.2;WOW64;rv:34.0)Gecko/20100101Firefox/34.0"); curl_setopt($ci,CURLOPT_CONNECTTIMEOUT,60);/*在发起连接前等待的时间,如果设置为0,则无限等待*/ curl_setopt($ci,CURLOPT_TIMEOUT,7);/*设置cURL允许执行的最长秒数*/ curl_setopt($ci,CURLOPT_RETURNTRANSFER,true); switch($method){ case"POST": curl_setopt($ci,CURLOPT_POST,true); if(!empty($postfields)){ $tmpdatastr=is_array($postfields)?http_build_query($postfields):$postfields; curl_setopt($ci,CURLOPT_POSTFIELDS,$tmpdatastr); } break; default: curl_setopt($ci,CURLOPT_CUSTOMREQUEST,$method);/*//设置请求方式*/ break; } $ssl=preg_match('/^https:\/\//i',$url)?TRUE:FALSE; curl_setopt($ci,CURLOPT_URL,$url); if($ssl){ curl_setopt($ci,CURLOPT_SSL_VERIFYPEER,FALSE);//https请求不验证证书和hosts curl_setopt($ci,CURLOPT_SSL_VERIFYHOST,FALSE);//不从证书中检查SSL加密算法是否存在 } //curl_setopt($ci,CURLOPT_HEADER,true);/*启用时会将头文件的信息作为数据流输出*/ curl_setopt($ci,CURLOPT_FOLLOWLOCATION,1); curl_setopt($ci,CURLOPT_MAXREDIRS,2);/*指定最多的HTTP重定向的数量,这个选项是和CURLOPT_FOLLOWLOCATION一起使用的*/ curl_setopt($ci,CURLOPT_HTTPHEADER,$headers); curl_setopt($ci,CURLINFO_HEADER_OUT,true); /*curl_setopt($ci,CURLOPT_COOKIE,$Cookiestr);**COOKIE带过去***/ $response=curl_exec($ci); $requestinfo=curl_getinfo($ci); $http_code=curl_getinfo($ci,CURLINFO_HTTP_CODE); if($debug){ echo"=====postdata======\r\n"; var_dump($postfields); echo"=====info=====\r\n"; print_r($requestinfo); echo"=====response=====\r\n"; print_r($response); } curl_close($ci); return$response; //returnarray($http_code,$response,$requestinfo); }
实例:
$res=httpRequest($url,'post',$data); $json_array=json_decode($res,true); $data=$json_array['data']['admin_user_list']; echo$data
以上这篇PHP调用接口API封装的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。