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


Posted in PHP onJanuary 13, 2017

首先是客户端执行方法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 相关文章推荐
Windows PHP5和Apache的安装与配置
Jun 08 PHP
php标签云的实现代码
Oct 10 PHP
PHP面向对象之旅:深入理解static变量与方法
Jan 06 PHP
PHP命令行脚本接收传入参数的三种方式
Aug 20 PHP
destoon文章模块调用企业会员资料的方法
Aug 22 PHP
PHP基于phpqrcode生成带LOGO图像的二维码实例
Jul 10 PHP
使用纯php代码实现页面伪静态的方法
Jul 25 PHP
php递归函数三种实现方法及如何实现数字累加
Aug 07 PHP
Yii针对添加行的增删改查操作示例
Oct 18 PHP
PHP获取MySQL执行sql语句的查询时间方法
Aug 21 PHP
laravel实现上传图片,并且制作缩略图,按照日期存放的代码
Oct 16 PHP
在Laravel中使用MongoDB的方法示例
Nov 11 PHP
PHP编程 SSO详细介绍及简单实例
Jan 13 #PHP
php 解决扫描二维码下载跳转问题
Jan 13 #PHP
PHP使用递归算法无限遍历数组示例
Jan 13 #PHP
PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】
Jan 13 #PHP
PHP使用strrev翻转中文乱码问题的解决方法
Jan 13 #PHP
使用php完成常见的文件上传功能(推荐)
Jan 13 #PHP
Yii2实现增删改查后留在当前页的方法详解
Jan 13 #PHP
You might like
PHP对象转换为数组函数(递归方法)
2012/02/04 PHP
php实现在限定区域里自动调整字体大小的类实例
2015/04/02 PHP
PHP编程入门的基本语法知识点总结
2016/01/26 PHP
PHP中include/require/include_once/require_once使用心得
2016/08/28 PHP
PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法
2016/11/25 PHP
jQuery中使用了document和window哪些属性和方法小结
2011/09/13 Javascript
jQuery.getScript加载同域JS的代码
2012/02/13 Javascript
让低版本浏览器支持input的placeholder属性(js方法)
2013/04/03 Javascript
阻止事件(取消浏览器对事件的默认行为并阻止其传播)
2013/11/03 Javascript
浅析JavaScript中的常用算法与函数
2013/11/21 Javascript
Jquery Uploadify上传带进度条的简单实例
2014/02/12 Javascript
使用jQuery异步加载 JavaScript脚本解决方案
2014/04/20 Javascript
jQuery实现折线图的方法
2015/02/28 Javascript
javascript实现实时输出当前的时间
2015/04/27 Javascript
javascript十六进制数字和ASCII字符之间的转换方法
2016/12/27 Javascript
node.js中http模块和url模块的简单介绍
2017/10/06 Javascript
React Native中NavigatorIOS组件的简单使用详解
2018/01/27 Javascript
Vue filter介绍及详细使用
2018/04/04 Javascript
详解vue axios用post提交的数据格式
2018/08/07 Javascript
vue实现固定位置显示功能
2019/05/30 Javascript
javascript设计模式 ? 桥接模式原理与应用实例分析
2020/04/13 Javascript
Vue + Node.js + MongoDB图片上传组件实现图片预览和删除功能详解
2020/04/29 Javascript
理解python多线程(python多线程简明教程)
2014/06/09 Python
浅谈Python 的枚举 Enum
2017/06/12 Python
用vue.js组件模拟v-model指令实例方法
2019/07/05 Python
python字典setdefault方法和get方法使用实例
2019/12/25 Python
阿迪达斯荷兰官方网站:adidas荷兰
2018/03/16 全球购物
爱尔兰领先的在线体育用品零售商:theGAAstore
2018/04/16 全球购物
HolidayLettings英国:预订最好的度假公寓、别墅和自助式住宿
2019/08/27 全球购物
全国道德模范事迹
2014/02/01 职场文书
2014年元旦感言
2014/03/06 职场文书
2014年创先争优活动总结
2014/05/04 职场文书
人事主管岗位职责说明书
2014/07/30 职场文书
医院保洁员岗位职责
2015/02/13 职场文书
MYSQL主从数据库同步备份配置的方法
2021/05/26 MySQL
2022微信温控新功能上线
2022/05/09 数码科技