详解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的历史和优缺点
Oct 09 PHP
关于Intype一些小问题的解决办法
Mar 28 PHP
PHP 开发环境配置(Zend Studio)
Apr 28 PHP
由php的call_user_func传reference引发的思考
Jul 23 PHP
PHP自定义函数收代码
Aug 01 PHP
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
Mar 19 PHP
PHP中的session永不过期的解决思路及实现方法分享
Apr 20 PHP
thinkPHP实现瀑布流的方法
Nov 29 PHP
PHP实现求连续子数组最大和问题2种解决方法
Dec 26 PHP
Laravel关系模型指定条件查询方法
Oct 10 PHP
laravel中的fillable和guarded属性详解
Oct 23 PHP
laravel ajax curd 搜索登录判断功能的实现
Apr 17 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
支持php4、php5的mysql数据库操作类
2008/01/10 PHP
判断是否为指定长度内字符串的php函数
2010/02/16 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
2016/06/24 PHP
thinkphp Apache配置重启Apache1 restart 出错解决办法
2017/02/15 PHP
PHP中常用的魔术方法
2017/04/28 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
多个Laravel项目如何共用migrations详解
2018/09/25 PHP
HTML中Select不用Disabled实现ReadOnly的效果
2008/04/07 Javascript
javascript 带有滚动条的表格,标题固定,带排序功能.
2009/11/13 Javascript
js下获取div中的数据的原理分析
2010/04/07 Javascript
jQuery的$.proxy()应用示例介绍
2014/04/03 Javascript
JavaScript面对国际化编程时的一些建议
2015/06/24 Javascript
基于jquery实现在线选座订座之影院篇
2015/08/24 Javascript
js严格模式总结(分享)
2016/08/22 Javascript
Js查找字符串中出现次数最多的字符及个数实例解析
2016/09/05 Javascript
整理关于Bootstrap警示框的慕课笔记
2017/03/29 Javascript
总结js中的一些兼容性易错的问题
2017/12/18 Javascript
Vue-Cli 3.0 中配置高德地图的两种方式
2019/06/19 Javascript
pyqt5移动鼠标显示坐标的方法
2019/06/21 Python
Python可变参数会自动填充前面的默认同名参数实例
2019/11/18 Python
Python Selenium参数配置方法解析
2020/01/19 Python
有关Tensorflow梯度下降常用的优化方法分享
2020/02/04 Python
Pytorch maxpool的ceil_mode用法
2020/02/18 Python
基于spring boot 日志(logback)报错的解决方式
2020/02/20 Python
详解Css3新特性应用之过渡与动画
2017/01/10 HTML / CSS
美国汽配连锁巨头Pep Boys官网:轮胎更换、汽车维修服务和汽车零部件
2017/01/14 全球购物
大学生就业推荐信范文
2013/11/29 职场文书
信息专业学生学习的自我评价
2014/02/17 职场文书
食品安全工作实施方案
2014/03/26 职场文书
安全生产目标责任书
2014/04/14 职场文书
合作经营协议书
2014/04/17 职场文书
工会工作先进事迹
2014/08/18 职场文书
先进人物事迹材料
2014/12/29 职场文书
导游词之张家口
2019/12/13 职场文书
golang gopm get -g -v 无法获取第三方库的解决方案
2021/05/05 Golang
Python超简单容易上手的画图工具库推荐
2021/05/10 Python