详解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 相关文章推荐
建立文件交换功能的脚本(二)
Oct 09 PHP
php你的验证码安全码?
Jan 02 PHP
php下使用以下代码连接并测试
Apr 09 PHP
有关php运算符的知识大全
Nov 03 PHP
php判断上传的Excel文件中是否有图片及PHPExcel库认识
Jan 11 PHP
php 地区分类排序算法
Jul 01 PHP
wordpress自定义url参数实现路由功能的代码示例
Nov 28 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
Jun 13 PHP
PHP计算一年多少个星期和每周的开始和结束日期
Jul 01 PHP
php 批量查询搜狗sogou代码分享
May 17 PHP
php自定义类fsocket模拟post或get请求的方法
Jul 31 PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
Mar 02 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/06/13 PHP
比较strtr, str_replace和preg_replace三个函数的效率
2013/06/26 PHP
php时间戳转换的示例
2014/03/31 PHP
用php定义一个数组最简单的方法
2019/10/04 PHP
JavaScript进阶教程(第四课第一部分)
2007/04/05 Javascript
JavaScript下申明对象的几种方法小结
2008/10/02 Javascript
javascript实现淡蓝色的鼠标拖动选择框实例
2015/05/09 Javascript
JavaScript中var关键字的使用详解
2015/08/14 Javascript
跟我学习javascript解决异步编程异常方案
2015/11/23 Javascript
JavaScript简单获取系统当前时间完整示例
2016/08/02 Javascript
AngularJS 视图详解及示例代码
2016/08/17 Javascript
HTML5 canvas 9绘制图片实例详解
2016/09/06 Javascript
javascript中递归的两种写法
2017/01/17 Javascript
js判断PC端与移动端跳转
2020/12/24 Javascript
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
vue路由跳转时判断用户是否登录功能的实现
2017/10/26 Javascript
详解Nuxt.js中使用Element-UI填坑
2019/09/06 Javascript
关于JS模块化的知识点分享
2019/10/16 Javascript
JavaScript实现移动端弹窗后禁止滚动
2020/05/25 Javascript
python 图片验证码代码分享
2012/07/04 Python
Python3.0与2.X版本的区别实例分析
2014/08/25 Python
用Python制作简单的朴素基数估计器的教程
2015/04/01 Python
python开发之基于thread线程搜索本地文件的方法
2015/11/11 Python
对python函数签名的方法详解
2019/01/22 Python
在PyCharm中控制台输出日志分层级分颜色显示的方法
2019/07/11 Python
Python 常用日期处理 -- calendar 与 dateutil 模块的使用
2020/09/02 Python
使用CSS3制作版头动画效果
2020/12/24 HTML / CSS
ghd官网:英国ghd直发器品牌
2018/05/04 全球购物
外贸实习生自荐信范文
2013/11/24 职场文书
卫校中专生的自我评价
2014/01/15 职场文书
公司开业庆典主持词
2014/03/21 职场文书
实习单位评语
2014/04/26 职场文书
高一课前三分钟演讲稿
2014/09/13 职场文书
企业爱心捐款倡议书
2015/04/27 职场文书
新闻简讯格式及范文
2015/07/22 职场文书
Python超详细分步解析随机漫步
2022/03/17 Python