详解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 auth_http类库进行身份效验
Mar 19 PHP
用PHP即时捕捉PHP中的错误并发送email通知的实现代码
Jan 19 PHP
php实现按指定大小等比缩放生成上传图片缩略图的方法
Dec 15 PHP
php正则表达式学习笔记
Nov 13 PHP
PHP登录验证码的实现与使用方法
Jul 07 PHP
Yii2下session跨域名共存的解决方案
Feb 04 PHP
php 调用ffmpeg获取视频信息的简单实现
Apr 03 PHP
一个实用的php验证码类
Jul 06 PHP
PHP yield关键字功能与用法分析
Jan 03 PHP
php链式操作的实现方式分析
Aug 12 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
Dec 20 PHP
PHP高并发和大流量解决方案整理
Dec 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
基于文本的搜索
2006/10/09 PHP
php 获取可变函数参数的函数
2009/08/26 PHP
CI(CodeIgniter)框架介绍
2014/06/09 PHP
php实现粘贴截图并完成上传功能
2015/05/17 PHP
php+html5基于websocket实现聊天室的方法
2015/07/17 PHP
使用PHP实现下载CSS文件中的图片
2015/12/06 PHP
IIS 7.5 asp Session超时时间设置方法
2017/04/17 PHP
PHP7多线程搭建教程
2017/04/21 PHP
php实现查询功能(数据访问)
2017/05/23 PHP
js带点自动图片轮播幻灯片特效代码分享
2015/09/07 Javascript
跟我学习javascript的作用域与作用域链
2015/11/19 Javascript
Bootstrap CSS布局之按钮
2016/12/17 Javascript
详解nodeJS中读写文件方法的区别
2017/03/06 NodeJs
fullPage.js和CSS3实现全屏滚动效果
2017/05/05 Javascript
原生JS实现不断变化的标签
2017/05/22 Javascript
vue.js中v-on:textInput无法执行事件问题的解决过程
2017/07/12 Javascript
jQuery实现列表的增加和删除功能
2018/06/14 jQuery
js正则表达式校验指定字符串的方法
2018/07/23 Javascript
基于vue.js组件实现分页效果
2018/12/29 Javascript
使用post方法实现json往返传输数据的方法
2019/03/30 Javascript
echarts浮动显示单位的实现方法示例
2020/12/04 Javascript
Python实时获取cmd的输出
2015/12/13 Python
使用Python来开发Markdown脚本扩展的实例分享
2016/03/04 Python
python二维码操作:对QRCode和MyQR入门详解
2019/06/24 Python
Python解析命令行读取参数之argparse模块
2019/07/26 Python
下载官网python并安装的步骤详解
2019/10/12 Python
Django后端发送小程序微信模板消息示例(服务通知)
2019/12/17 Python
pytorch实现mnist数据集的图像可视化及保存
2020/01/14 Python
分解成质因数(如435234=251*17*17*3*2,据说是华为笔试题)
2014/07/16 面试题
linux面试题参考答案(7)
2012/10/29 面试题
班主任寄语大全
2014/04/04 职场文书
考核评语大全
2014/04/29 职场文书
初中信息技术教学计划
2015/01/22 职场文书
大学生团员个人总结
2015/02/14 职场文书
关于环保的广播稿
2015/12/17 职场文书
使用CSS实现按钮边缘跑马灯动画
2023/05/07 HTML / CSS