详解php用curl调用接口方法,get和post两种方式
首先是客户端执行方法ApiModel.php:
<?php
/**
*模拟post进行url请求
*@paramstring$url
*@paramarray$post_data
*/
functionrequest_post($url='',$ispost=true,$post_data=array()){
if(empty($url)||empty($post_data)){
returnfalse;
}
$o="";
foreach($post_dataas$k=>$v)
{
$o.="$k=".urlencode($v)."&";
}
$post_data=substr($o,0,-1);
$key=md5(base64_encode($post_data));
if($ispost){
$url=$url;
}else{
$url=$url.'?'.$post_data;
}
$curlPost='key='.$key;
header("Content-type:text/html;charset=utf-8");
$ch=curl_init();//初始化curl
curl_setopt($ch,CURLOPT_URL,$url);//抓取指定网页
curl_setopt($ch,CURLOPT_HEADER,0);//设置header
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//要求结果为字符串且输出到屏幕上
if($ispost){
curl_setopt($ch,CURLOPT_POST,1);//post提交方式
curl_setopt($ch,CURLOPT_POSTFIELDS,$curlPost);
}
$data=curl_exec($ch);//运行curl
curl_close($ch);
return$data;
}
?>
客户端调用方法,可以在此配置基本信息api.php:
<?php
require'ApiModel.php';
functiontestAction(){
$url='接口地址';
$post_data['appid']='10';
$post_data['appkey']='cmbohpffXVR03nIpkkQXaAA1Vf5nO4nQ';
$post_data['member_name']='zsjs124';
$post_data['password']='123456';
$post_data['email']='zsjs124@126.com';
//$post_data=array();
$res=request_post($url,$ispost=true,$post_data);
print_r($res);
}
testAction();
?>
服务器的接口函数test.php:
<?php
functionserverapi(){
$key='57173d6ad842d807443ee0db91fed323';
if($_GET&&$_GET['appkey']=='cmbohpffXVR03nIpkkQXaAA1Vf5nO4nQ'||$_POST&&$_POST['key']===$key){
$arr=array('name'=>'huanglu','password'=>'123456');
echojson_encode($arr);
}else{
exit('非法访问!');
}
}
serverapi();
?>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。