详解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调用三种数据库的方法(3)
Oct 09 PHP
Access数据库导入Mysql的方法之一
Oct 09 PHP
PHP数据集构建JSON格式及新数组的方法
Nov 07 PHP
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
Jun 24 PHP
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
Jun 25 PHP
解决CodeIgniter伪静态失效
Jun 09 PHP
PHP中的socket_read和socket_recv区别详解
Feb 09 PHP
php实现递归与无限分类的方法
Feb 16 PHP
PHP利用APC模块实现大文件上传进度条的方法
Oct 29 PHP
php面向对象编程self和static的区别
May 08 PHP
PHPExcel导出2003和2007的excel文档功能示例
Jan 04 PHP
thinkPHP5.0框架模块设计详解
Mar 18 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
coreseek 搜索英文的问题详解
2013/06/08 PHP
php获取域名的google收录示例
2014/03/24 PHP
自制PHP框架之设计模式
2017/05/07 PHP
PHP设计模式之装饰器模式定义与用法详解
2018/04/02 PHP
Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
2016/06/23 Javascript
利用JS实现数字增长
2016/07/28 Javascript
JS实现最简单的冒泡排序算法
2017/02/15 Javascript
JavaScript脚本语言是什么_动力节点Java学院整理
2017/06/26 Javascript
Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
2018/06/10 Javascript
使用React手写一个对话框或模态框的方法示例
2019/04/25 Javascript
Easyui 关闭jquery-easui tab标签页前触发事件的解决方法
2019/04/28 jQuery
JavaScript实现浏览器网页自动滚动并点击的示例代码
2020/12/05 Javascript
[02:51]DOTA2 2015国际邀请赛中国区预选赛第一日战报
2015/05/27 DOTA
[59:30]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
Python中使用tarfile压缩、解压tar归档文件示例
2015/04/05 Python
Python sqlite3事务处理方法实例分析
2017/06/19 Python
python psutil库安装教程
2018/03/19 Python
python线程池threadpool使用篇
2018/04/27 Python
python3中os.path模块下常用的用法总结【推荐】
2018/09/16 Python
Python设计模式之备忘录模式原理与用法详解
2019/01/15 Python
Python实现微信消息防撤回功能的实例代码
2019/04/29 Python
Python虚拟环境的原理及使用详解
2019/07/02 Python
详解python datetime模块
2020/08/17 Python
CSS3新增布局之: flex详解
2020/06/18 HTML / CSS
如何使用localstorage代替cookie实现跨域共享数据问题
2018/04/18 HTML / CSS
分别介绍一下Session Bean和Entity Bean
2015/03/13 面试题
学校采购员岗位职责
2014/01/02 职场文书
小学生打架检讨书
2014/01/26 职场文书
高中微机老师自我鉴定
2014/02/16 职场文书
青春励志演讲稿范文
2014/08/25 职场文书
西双版纳导游词
2015/02/03 职场文书
2015年小学中秋节活动总结
2015/03/23 职场文书
廉政承诺书范文
2015/04/28 职场文书
2015年街道办事处工作总结
2015/05/22 职场文书
超强台风观后感
2015/06/09 职场文书
青少年法制教育心得体会
2016/01/14 职场文书