详解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实现的随机广告显示代码
Jun 14 PHP
PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
May 29 PHP
解析php取整的几种方式
Jun 25 PHP
php中的字符编码转换函数用法示例
Oct 20 PHP
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
Apr 27 PHP
php从数据库中获取数据用ajax传送到前台的方法
Aug 20 PHP
laravel 框架配置404等异常页面
Jan 07 PHP
PHP实现的微信公众号扫码模拟登录功能示例
May 30 PHP
php判断目录存在的简单方法
Sep 26 PHP
TP5框架使用QueryList采集框架爬小说操作示例
Mar 26 PHP
PHP优化之批量操作MySQL实例分析
Apr 23 PHP
PHP数组array类常见操作示例
May 15 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
Access数据库导入Mysql的方法之一
2006/10/09 PHP
学习php设计模式 php实现享元模式(flyweight)
2015/12/07 PHP
PHP的Yii框架中Model模型的学习教程
2016/03/29 PHP
PHP实现清除MySQL死连接的方法
2016/07/23 PHP
PHP autoload使用方法及步骤详解
2020/09/05 PHP
javascript网页关闭时提醒效果脚本
2008/10/22 Javascript
很棒的学习jQuery的12个网站推荐
2011/04/28 Javascript
js关闭父窗口时关闭子窗口
2013/04/01 Javascript
js中如何把字符串转化为对象、数组示例代码
2013/07/17 Javascript
向左滚动文字 js代码效果
2013/08/17 Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
2014/03/06 Javascript
jquery模拟LCD 时钟的html文件源代码
2014/06/16 Javascript
整理Javascript基础入门学习笔记
2015/11/29 Javascript
js如何改变文章的字体大小
2016/01/08 Javascript
jQuery遮罩层效果实例分析
2016/01/14 Javascript
Bootstrap入门书籍之(零)Bootstrap简介
2016/02/17 Javascript
js小数计算小数点后显示多位小数的实现方法
2016/05/30 Javascript
jQuery和JavaScript节点插入元素的方法对比
2016/11/18 Javascript
Bootstrap基本样式学习笔记之按钮(4)
2016/12/07 Javascript
AngularJS服务service用法总结
2016/12/13 Javascript
详解webpack require.ensure与require AMD的区别
2017/12/13 Javascript
说说node中的可读流和可写流的区别
2018/06/01 Javascript
js实现计时器秒表功能
2019/12/16 Javascript
微信小程序实现电影App导航和轮播
2020/11/30 Javascript
利用numpy实现一、二维数组的拼接简单代码示例
2017/12/15 Python
python实现简单聊天室功能 可以私聊
2019/07/12 Python
pandas 选取行和列数据的方法详解
2019/08/08 Python
CSS3 3D酷炫立方体变换动画的实现
2019/03/26 HTML / CSS
美国知名生活购物网站:Goop
2017/11/03 全球购物
贝佳斯官方网站:Borghese
2020/05/08 全球购物
家长学校实施方案
2014/03/15 职场文书
教师演讲稿大全
2014/05/16 职场文书
多媒体教室标语
2014/06/26 职场文书
2014年银行员工年终自我评价
2014/09/19 职场文书
中国文明网2015年“向国旗敬礼”活动网上签名寄语
2015/09/24 职场文书
详解Golang如何实现支持随机删除元素的堆
2022/09/23 Python