详解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 XML error parsing SOAP payload on line 1
Jun 17 PHP
php 调试利器debug_print_backtrace()
Jul 23 PHP
PHP的autoload机制的实现解析
Sep 15 PHP
PHP goto语句简介和使用实例
Mar 11 PHP
php实现水仙花数示例分享
Apr 03 PHP
php中多维数组按指定value排序的实现代码
Aug 19 PHP
安装ImageMagick出现error while loading shared libraries的解决方法
Sep 23 PHP
PHP合并静态文件详解
Nov 14 PHP
PHP入门教程之上传文件实例详解
Sep 11 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
Nov 16 PHP
详解PHP中mb_strpos的使用
Feb 04 PHP
PHP的PDO连接讲解
Jan 24 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
浅谈Windows下 PHP4.0与oracle 8的连接设置
2006/10/09 PHP
ajax缓存问题解决途径
2006/12/06 PHP
PHP 导出Excel示例分享
2014/08/18 PHP
百度实时推送api接口应用示例
2014/10/21 PHP
理解JavaScript变量作用域更轻松
2009/10/25 Javascript
JS子父窗口互相操作取值赋值的方法介绍
2013/05/11 Javascript
JS创建自定义表格具体实现
2014/02/11 Javascript
JS实现网页表格自动变大缩小的方法
2015/03/09 Javascript
JS实现仿QQ面板的手风琴效果折叠菜单代码
2015/09/11 Javascript
用JavaScript判断CSS浏览器类型前缀的两种方法
2015/10/08 Javascript
在Node.js中使用Javascript Generators详解
2016/05/05 Javascript
BootStrap智能表单实战系列(四)表单布局介绍
2016/06/13 Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
2016/08/11 Javascript
关于 angularJS的一些用法
2017/11/29 Javascript
Angular4 ElementRef的应用
2018/02/26 Javascript
如何在Vue中使用CleaveJS格式化你的输入内容
2018/12/14 Javascript
vue2之简易的pc端短信验证码的问题及处理方法
2019/06/03 Javascript
JS中getElementsByClassName与classList兼容性问题解决方案分析
2019/08/07 Javascript
JavaScript实现移动端带transition动画的轮播效果
2020/03/24 Javascript
关于你不想知道的所有Python3 unicode特性
2014/11/28 Python
mac安装pytorch及系统的numpy更新方法
2018/07/26 Python
对python requests的content和text方法的区别详解
2018/10/11 Python
Python可变和不可变、类的私有属性实例分析
2019/05/31 Python
python 实现在一张图中绘制一个小的子图方法
2019/07/07 Python
如何使用Python自动生成报表并以邮件发送
2020/10/15 Python
四年的大学生生活自我评价
2013/12/09 职场文书
商场中秋节活动方案
2014/02/07 职场文书
募捐倡议书
2014/04/14 职场文书
小学优秀班干部事迹材料
2014/05/25 职场文书
森林病虫害防治方案
2014/06/02 职场文书
优秀小学生事迹材料
2014/12/26 职场文书
2015年毕业生实习评语
2015/03/25 职场文书
高考百日冲刺决心书
2015/09/23 职场文书
导游词之无锡梅园
2019/11/28 职场文书
数据库连接池
2021/04/06 MySQL
python中pymysql包操作数据库方法
2022/04/19 Python