首页  >  文章  >  后端开发  >  php get和post两种方式用curl调用接口方法详解

php get和post两种方式用curl调用接口方法详解

伊谢尔伦
伊谢尔伦原创
2017-07-03 10:33:463135浏览

首先是客户端执行方法ApiModel.php:

<?php 
/**
   * 模拟post进行url请求
   * @param string $url
   * @param array $post_data
   */
  function request_post($url = &#39;&#39;,$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.&#39;?&#39;.$post_data;
    }
    
    
    $curlPost = &#39;key=&#39;.$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 &#39;ApiModel.php&#39;;
function testAction(){
    $url = &#39;接口地址&#39;;
    $post_data[&#39;appid&#39;]    = &#39;10&#39;;
    $post_data[&#39;appkey&#39;]   = &#39;cmbohpffXVR03nIpkkQXaAA1Vf5nO4nQ&#39;;
    $post_data[&#39;member_name&#39;] = &#39;zsjs124&#39;;
    $post_data[&#39;password&#39;]  = &#39;123456&#39;;
    $post_data[&#39;email&#39;]  = &#39;zsjs124@126.com&#39;;
    //$post_data = array();
    $res = request_post($url,$ispost=true,$post_data);    
    print_r($res);

  }
testAction();
?>

服务器的接口函数test.php:

<?php 
function serverapi(){
  $key=&#39;57173d6ad842d807443ee0db91fed323&#39;;
  if($_GET&&$_GET[&#39;appkey&#39;]==&#39;cmbohpffXVR03nIpkkQXaAA1Vf5nO4nQ&#39;||$_POST&&$_POST[&#39;key&#39;]===$key){
    $arr=array(&#39;name&#39;=>&#39;huanglu&#39;,&#39;password&#39;=>&#39;123456&#39;);
    echo json_encode($arr);
  }else{
    exit(&#39;非法访问!&#39;);
  }
}
serverapi();
?>

以上是php get和post两种方式用curl调用接口方法详解的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn