详解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 Notice: Undefined index 错误提示解决方法
Aug 29 PHP
PHP中simplexml_load_string函数使用说明
Jan 01 PHP
php max_execution_time执行时间问题
Jul 17 PHP
PHP常用特殊运算符号和函数总结(php新手入门必看)
Feb 02 PHP
使用phpQuery采集网页的方法
Nov 13 PHP
PHP中soap的用法实例
Oct 24 PHP
php猴子选大王问题解决方法
May 12 PHP
php获取英文姓名首字母的方法
Jul 13 PHP
PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法
Nov 25 PHP
PHP调用其他文件中的类
Apr 02 PHP
PHP实现将base64编码字符串转换成图片示例
Jun 22 PHP
Laravel框架之解决前端显示图片问题
Oct 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
PHP实现仿Google分页效果的分页函数
2015/07/29 PHP
php实现的单一入口应用程序实例分析
2015/09/23 PHP
phpMyAdmin无法登陆的解决方法
2017/04/27 PHP
PHP实现时间日期友好显示实现代码
2019/09/08 PHP
js 深拷贝函数
2008/12/04 Javascript
JavaScript 使用技巧精萃(.net html
2009/04/25 Javascript
非常有用的40款jQuery 插件推荐(系列二)
2011/12/25 Javascript
JavaScript列表框listbox全选和反选的实现方法
2015/03/18 Javascript
深入理解JavaScript中的对象
2015/06/04 Javascript
JavaScript中的setUTCDate()方法使用详解
2015/06/11 Javascript
在AngularJS框架中处理数据建模的方式解析
2016/03/05 Javascript
AngularJS动态绑定HTML的方法分析
2016/11/07 Javascript
jquery-mobile表单的创建方法详解
2016/11/23 Javascript
React学习笔记之条件渲染(一)
2017/07/02 Javascript
深入理解JavaScript的值传递和引用传递
2018/10/24 Javascript
Vue3为什么这么快
2020/09/23 Javascript
[51:43]OG vs LGD 2018国际邀请赛淘汰赛BO3 第五场 8.26
2018/08/30 DOTA
python用于url解码和中文解析的小脚本(python url decoder)
2013/08/11 Python
用Python遍历C盘dll文件的方法
2015/05/06 Python
Python2.x与Python3.x的区别
2016/01/14 Python
python matlibplot绘制3D图形
2018/07/02 Python
在Python中pandas.DataFrame重置索引名称的实例
2018/11/06 Python
程序员写Python时的5个坏习惯,你有几条?
2018/11/26 Python
python调用外部程序的实操步骤
2019/03/04 Python
Python实现简单的列表冒泡排序和反转列表操作示例
2019/07/10 Python
你还在@微信官方?聊聊Python生成你想要的微信头像
2019/09/25 Python
python实现拼接图片
2020/03/23 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
2020/05/24 Python
Python+Xlwings 删除Excel的行和列
2020/12/19 Python
css3类选择器之结合元素选择器和多类选择器用法
2017/03/09 HTML / CSS
苏宁红孩子母婴商城:redbaby
2017/02/12 全球购物
英国香水店:The Perfume Shop
2017/03/27 全球购物
什么是事务?事务有哪些性质?
2012/03/11 面试题
电脑售后服务承诺书
2014/03/27 职场文书
python常见的占位符总结及用法
2021/07/02 Python
Sentry的安装、配置、使用教程(Sentry日志手机系统)
2022/07/23 Python