首先是客户端执行方法apimodel.php:
<?php
/**
* 模拟post进行url请求
* @param string $url
* @param array $post_data
*/
function request_post($url = '',$ispost=true, $post_data = array()) {
if (empty($url) || empty($post_data)) {
return false;
}
$o = "";
foreach ( $post_data as $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';
function testaction(){
$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
function serverapi(){
$key='57173d6ad842d807443ee0db91fed323';
if($_get&&$_get['appkey']=='cmbohpffxvr03nipkkqxaaa1vf5no4nq'||$_post&&$_post['key']===$key){
$arr=array('name'=>'huanglu','password'=>'123456');
echo json_encode($arr);
}else{
exit('非法访问!');
}
}
serverapi();
?>
以上就是php get和post两种方式用curl调用接口方法详解的详细内容。