详解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 相关文章推荐
用Zend Encode编写开发PHP程序
Oct 09 PHP
PHP+DBM的同学录程序(2)
Oct 09 PHP
克隆一个新项目的快捷方式
Apr 10 PHP
php合并js请求的例子
Nov 01 PHP
Laravel 5框架学习之Blade 简介
Apr 08 PHP
PHP实现对png图像进行缩放的方法(支持透明背景)
Jul 15 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
Jan 17 PHP
PHP基于接口技术实现简单的多态应用完整实例
Apr 26 PHP
php readfile下载大文件失败的解决方法
May 22 PHP
PHP+Apache环境中如何隐藏Apache版本
Nov 24 PHP
Laravel5.1 框架路由基础详解
Jan 04 PHP
PHP数组与字符串互相转换实例
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
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
2010/03/27 PHP
php专用数组排序类ArraySortUtil用法实例
2015/04/03 PHP
php 把数字转换成汉字的代码
2015/07/21 PHP
PHP实现的简单操作SQLite数据库类与用法示例
2017/06/19 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
javascript sudoku 数独智力游戏生成代码
2010/03/27 Javascript
IE6,IE7下js动态加载图片不显示错误
2010/07/17 Javascript
javascript AOP 实现ajax回调函数使用比较方便
2010/11/20 Javascript
手机平板等移动端适配跳转URL的js代码
2014/01/25 Javascript
Node.js异步I/O学习笔记
2014/11/04 Javascript
javascript中setTimeout和setInterval的unref()和ref()用法示例
2014/11/26 Javascript
详解vue-Resource(与后端数据交互)
2017/01/16 Javascript
详解Vue2中组件间通信的解决全方案
2017/07/28 Javascript
浅谈Angular4中常用管道
2017/09/27 Javascript
vue实现提示保存后退出的方法
2018/03/15 Javascript
JS实现获取数组中最大值或最小值功能示例
2019/03/02 Javascript
JavaScript 函数用法详解【函数定义、参数、绑定、作用域、闭包等】
2020/05/12 Javascript
vue中组件通信详解(父子组件, 爷孙组件, 兄弟组件)
2020/07/27 Javascript
NestJs使用Mongoose对MongoDB操作的方法
2021/02/22 Javascript
[03:48]显微镜下的DOTA2第四期——TP动作
2014/06/20 DOTA
Eclipse和PyDev搭建完美Python开发环境教程(Windows篇)
2016/11/16 Python
Python实现随机生成有效手机号码及身份证功能示例
2017/06/05 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
2018/01/09 Python
python 获取list特定元素下标的实例讲解
2018/04/09 Python
浅述python2与python3的简单区别
2018/09/19 Python
python 使用三引号时容易犯的小错误
2020/10/21 Python
python 实现倒计时功能(gui界面)
2020/11/11 Python
jupyter notebook更换皮肤主题的实现
2021/01/07 Python
印尼在线旅游门户网站:NusaTrip
2019/11/01 全球购物
异步传递消息系统的作用
2016/05/01 面试题
辞职信格式模板
2015/02/27 职场文书
2015年大学迎新工作总结
2015/07/16 职场文书
2016年共产党员公开承诺书
2016/03/24 职场文书
英语版自我评价,35句话轻松搞定
2019/10/08 职场文书
centos8安装MongoDB的详细过程
2021/10/24 MongoDB
宫崎骏十大动画电影,宫崎骏好看的动画电影排名
2022/03/22 日漫