详解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 相关文章推荐
DedeCMS 核心类TypeLink.class.php摘要笔记
Apr 07 PHP
php中存储用户ID和密码到mysql数据库的方法
Feb 06 PHP
php用正则表达式匹配中文实例详解
Nov 06 PHP
PHP用身份证号获取星座和生肖的方法
Nov 07 PHP
PHP父类调用子类方法的代码例子
Apr 09 PHP
ThinkPHP实现动态包含文件的方法
Nov 29 PHP
php实现通用的从数据库表读取数据到数组的函数实例
Mar 21 PHP
帝国CMS留言板回复后发送EMAIL通知客户
Jul 06 PHP
php自动识别文字编码并转换为目标编码的方法
Aug 08 PHP
Laravel+jQuery实现AJAX分页效果
Sep 14 PHP
Laravel使用原生sql语句并调用的方法
Oct 09 PHP
PHP实现通过二维数组键值获取一维键名操作示例
Oct 11 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开发注意事项总结
2015/02/04 PHP
PHP内核学习教程之php opcode内核实现
2016/01/27 PHP
PHP生成可点击刷新的验证码简单示例
2016/05/13 PHP
ASP.NET jQuery 实例10 动态修改hyperlink的URL值
2012/02/03 Javascript
JavaScript控制Session操作方法
2013/01/17 Javascript
解析Jquery取得iframe中元素的几种方法
2013/07/04 Javascript
javascript与jquery中跳出循环的区别总结
2013/11/04 Javascript
js截取固定长度的中英文字符的简单实例
2013/11/22 Javascript
JS中判断JSON数据是否存在某字段的方法
2014/03/07 Javascript
js数组中如何随机取出一个值
2014/06/13 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
2016/12/23 Javascript
js实现倒计时关键代码
2017/05/05 Javascript
Vue项目history模式下微信分享爬坑总结
2019/03/29 Javascript
Vue学习之常用指令实例详解
2020/01/06 Javascript
使用TS来编写express服务器的方法步骤
2020/10/29 Javascript
利用Python实现简单的相似图片搜索的教程
2015/04/23 Python
python实现文件快照加密保护的方法
2015/06/30 Python
详解python3实现的web端json通信协议
2016/12/29 Python
利用python获取Ping结果示例代码
2017/07/06 Python
Python实现基本数据结构中栈的操作示例
2017/12/04 Python
tensorflow实现逻辑回归模型
2018/09/08 Python
Python django使用多进程连接mysql错误的解决方法
2018/10/08 Python
如何在Win10系统使用Python3连接Hive
2020/10/15 Python
C++的几个面试题附答案
2016/08/03 面试题
工作表扬信的范文
2014/01/10 职场文书
高中生的自我鉴定范文
2014/01/24 职场文书
幼儿园美术教学反思
2014/01/31 职场文书
院领导写的就业推荐信
2014/03/09 职场文书
幼儿评语大全
2014/04/30 职场文书
小学假期安全广播稿
2014/09/28 职场文书
离婚财产分配协议书
2014/10/21 职场文书
夫妻分居协议书范本
2014/11/28 职场文书
团代会闭幕词
2015/01/28 职场文书
社区服务理念口号
2015/12/25 职场文书
传单、海报早OUT了,另类传单营销方案送给你!
2019/07/15 职场文书