详解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 相关文章推荐
基于mysql的bbs设计(三)
Oct 09 PHP
ecshop 订单确认中显示省市地址信息的方法
Mar 15 PHP
PHP文件操作实现代码分享
Sep 01 PHP
解析如何去掉CodeIgniter URL中的index.php
Jun 25 PHP
php实现的太平洋时间和北京时间互转的自定义函数分享
Aug 19 PHP
thinkPHP实现瀑布流的方法
Nov 29 PHP
PHP通过加锁实现并发情况下抢码功能
Aug 10 PHP
PHP数组编码gbk与utf8互相转换的两种方法
Sep 01 PHP
PHP实现的多维数组去重操作示例
Jul 21 PHP
php使用QueryList轻松采集js动态渲染页面方法
Sep 11 PHP
Swoole实现异步投递task任务案例详解
Apr 02 PHP
小程序微信支付功能配置方法示例详解【基于thinkPHP】
May 05 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下操作Linux消息队列完成进程间通信的方法
2010/07/24 PHP
php反射应用示例
2014/02/25 PHP
PHP队列用法实例
2014/11/05 PHP
smarty模板引擎中自定义函数的方法
2015/01/22 PHP
PHP四舍五入、取整、round函数使用示例
2015/02/06 PHP
javascript基础第一章 JavaScript与用户端
2010/07/22 Javascript
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
2012/09/02 Javascript
setTimeout函数兼容各主流浏览器运行执行效果实例
2013/06/13 Javascript
鼠标移到div,浮层显示明细,弹出层与div的上边距左边距重合(示例代码)
2013/12/14 Javascript
jQuery+easyui中的combobox实现下拉框特效
2015/02/27 Javascript
JavaScript 变量、作用域及内存
2015/04/08 Javascript
JavaScript 2048 游戏实例代码(简单易懂)
2016/03/25 Javascript
1秒50万字!js实现关键词匹配
2016/08/01 Javascript
DOM中事件处理概览与原理的全面解析
2016/08/16 Javascript
微信小程序实现轮播图效果
2017/09/07 Javascript
vue-cli脚手架的安装教程图解
2018/09/02 Javascript
vue首次赋值不触发watch的解决方法
2018/09/11 Javascript
BootStrap table实现表格行拖拽效果
2018/12/01 Javascript
vue 导航内容设置选中状态样式的例子
2019/11/01 Javascript
es6中let和const的使用方法详解
2020/02/24 Javascript
javascript实现京东登录显示隐藏密码
2020/08/02 Javascript
[00:59]PWL开团时刻DAY7——我在赶
2020/11/06 DOTA
python中异常捕获方法详解
2017/03/03 Python
使用 Python 实现简单的 switch/case 语句的方法
2018/09/17 Python
python绘制直方图和密度图的实例
2019/07/08 Python
新手入门Python编程的8个实用建议
2019/07/12 Python
python进阶之自定义可迭代的类
2019/08/20 Python
pytorch中的自定义反向传播,求导实例
2020/01/06 Python
python 递归调用返回None的问题及解决方法
2020/03/16 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
2020/05/08 Python
关于Python3爬虫利器Appium的安装步骤
2020/07/29 Python
解决html5中video标签无法播放mp4问题的办法
2017/05/07 HTML / CSS
请假条标准格式规范
2014/04/10 职场文书
玩手机检讨书1000字
2014/10/20 职场文书
2015年语文教学工作总结
2015/05/25 职场文书
简历上的自我评价,该怎么写呢?
2019/06/13 职场文书