$GLOBALS['config']= array(
'ak'=>'8xxxxxxxx3822212fexxxx',
'sk'=>'caxxxxxxx6d16c1exxxxxx'
);
$host = 'http://api.yi-xxy.com';
$cookie = 'yiplay_session='.'b415dbc8201551b99cae61d3778254544bf10bc0'; //实际上这个cookie 是sessionid
function request_api_post($url,$params=''){
global $host;
global $cookie;
$request_url= $host.$url; //注意$url 不要加斜杠
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$request_url);
if($params){
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($params)); //注意有的服务器给数组也能接收post参数,有的必须要http_build_query,感觉这些服务web服务版本很低很老
}
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
//签名header
if(!empty($params)){
sort($params,SORT_STRING);
$post = implode('',$params);
}else{
$post = '';
}
$headers=array(
'sign:'.md5($GLOBALS['config']['sk'].$post)
);
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,1);
curl_setopt($ch,CURLOPT_TIMEOUT,5);
curl_setopt($ch, CURLOPT_COOKIE,$cookie);
parse_url($url);
$txt = curl_exec($ch);
var_dump($txt);
echo '<hr/>++++++++++++++';
$errno = curl_errno($ch);
$error = curl_error($ch);
$info = curl_getinfo($ch);
var_dump($errno);
var_dump($error);
var_dump($info);
echo '----------';
$json = json_decode($txt,true);
if(!$json){
exit('接口返回格式错误');
}
if(curl_errno($ch)){
exit(curl_error($ch));
}
}
GET请求方式
function request_api_get($url,$params=''){
global $host;
global $cookie;
$request_url= $host.$url;
//$request_url='z.sale.com'.$url; //注意不要加斜杠
$ch = curl_init();
if(!empty($params)){
$request_url .= '?'.http_build_query($params);
}
curl_setopt($ch,CURLOPT_URL,$request_url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
//签名header
if(!empty($params)){
sort($params,SORT_STRING);
$post = implode('',$params);
}else{
$post = '';
}
$headers=array(
'sign:'.md5($GLOBALS['config']['sk'].$post)
);
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,1);
curl_setopt($ch,CURLOPT_TIMEOUT,3);
curl_setopt($ch, CURLOPT_COOKIE,$cookie);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
parse_url($url);
$txt = curl_exec($ch);
echo $txt;
$json = json_decode($txt,true);
if(!$json){
exit('接口返回格式错误');
}
if(curl_errno($ch)){
exit(curl_error($ch));
}
}
POST 上传文件 + 普通参数 提交如下:(注意上传logo , logo不参与签名)
function request_api_post($url,$params=''){
global $host;
global $cookie;
$request_url= $host.$url;
//$request_url='z.sale.com'.$url; //注意不要加斜杠
$sort_par = $params;
$ch = curl_init();
// $filename = './head.jpg';
// $minetype = 'image/jpeg';
// $curl_file = curl_file_create($filename,$minetype);
$file = dirname(__FILE__).'/head.png';
$res_img = new CurlFile($file);
var_dump($res_img);
curl_setopt($ch,CURLOPT_URL,$request_url);
$post ="";
if($params){
$params['logo'] = $res_img;
curl_setopt($ch,CURLOPT_POST,true);
// curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($params));
curl_setopt($ch,CURLOPT_POSTFIELDS,$params);
}
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
//签名header
if(!empty($sort_par)){
sort($sort_par,SORT_STRING);
$post = implode('',$sort_par);
}
$headers=array(
'sign:'.md5($GLOBALS['config']['sk'].$post)
);
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,1);
curl_setopt($ch,CURLOPT_TIMEOUT,3);
curl_setopt($ch, CURLOPT_COOKIE,$cookie);
parse_url($url);
$txt = curl_exec($ch);
echo 'RES:';
var_dump($txt);
echo '<hr/>';
$errno = curl_errno($ch);
$error = curl_error($ch);
//$info = curl_getinfo($ch);
var_dump($errno);
var_dump($error);
//var_dump($info);
echo '----------';
$json = json_decode($txt,true);
if(!$json){
exit('接口返回格式错误');
}
if(curl_errno($ch)){
exit(curl_error($ch));
}
}