详解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 相关文章推荐
生成静态页面的PHP类
Jul 15 PHP
实现php加速的eAccelerator dll支持文件打包下载
Sep 30 PHP
php 分页原理详解
Aug 21 PHP
php自定义函数call_user_func和call_user_func_array详解
Jul 14 PHP
php curl_init函数用法
Jan 31 PHP
微信公众号开发之文本消息自动回复php代码
Aug 08 PHP
PHP页面输出时js设置input框的选中值
Sep 30 PHP
PHP面向对象继承用法详解(优化与减少代码重复)
Dec 02 PHP
浅谈ThinkPHP中initialize和construct的区别
Apr 01 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
Apr 10 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
Jan 26 PHP
一次项目中Thinkphp绕过禁用函数的实战记录
Nov 17 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 论坛采集程序 模拟登陆,抓取页面 实现代码
2009/07/09 PHP
深入分析PHP优化及注意事项
2016/07/04 PHP
Ajax+PHP实现的分类列表框功能示例
2019/02/11 PHP
jquery select(列表)的操作(取值/赋值)
2011/03/16 Javascript
js实现一个省市区三级联动选择框代码分享
2013/03/06 Javascript
兼容IE和Firefox火狐的上下、左右循环无间断滚动JS代码
2013/04/19 Javascript
js判断浏览器是否支持html5
2014/08/17 Javascript
再谈javascript原型继承
2014/11/10 Javascript
JavaScript中判断变量是数组、函数或是对象类型的方法
2015/02/25 Javascript
js简单获取表单中单选按钮值的方法
2016/08/23 Javascript
解析如何利用iframe标签以及js制作时钟
2016/12/08 Javascript
vue基于Element构建自定义树的示例代码
2017/09/19 Javascript
vue-cli项目中怎么使用mock数据
2017/09/27 Javascript
详解Koa中更方便简单发送响应的方式
2018/07/20 Javascript
JS面试题大坑之隐式类型转换实例代码
2018/10/14 Javascript
vue中v-for循环给标签属性赋值的方法
2018/10/18 Javascript
基于vue实现滚动条滚动到指定位置对应位置数字进行tween特效
2019/04/18 Javascript
javascript实现自由编辑图片代码详解
2019/06/21 Javascript
搭建Vue从Vue-cli到router路由护卫的实现
2019/11/14 Javascript
解决vue动态路由异步加载import组件,加载不到module的问题
2020/07/26 Javascript
Python 生成 -1~1 之间的随机数矩阵方法
2018/08/04 Python
docker-py 用Python调用Docker接口的方法
2019/08/30 Python
python、PyTorch图像读取与numpy转换实例
2020/01/13 Python
Python 时间戳之获取整点凌晨时间戳的操作方法
2020/01/28 Python
python编写实现抽奖器
2020/09/10 Python
aden + anais官方网站:婴儿襁褓、毯子、尿布和服装
2017/06/21 全球购物
Bally巴利中国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/10/09 全球购物
市场营销专业推荐信
2013/11/03 职场文书
决心书范文
2014/03/11 职场文书
2014国庆节主题活动方案:快乐的国庆节
2014/09/16 职场文书
2015年医德考评自我评价
2015/03/03 职场文书
2015年城市管理工作总结
2015/05/23 职场文书
对公司的意见和建议
2015/06/04 职场文书
高考要来啦!用Python爬取历年高考数据并分析
2021/06/03 Python
Mongodb 迁移数据块的流程介绍分析
2022/04/18 MongoDB
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
2022/04/29 Servers