/**

* [http 调用接口函数]

* @Date 2016-07-11

* @Author GeorgeHao

* @param string $url [接口地址]

* @param array $params [数组]

* @param string $method [GET\POST\DELETE\PUT]

* @param array $header [HTTP头信息]

* @param integer $timeout [超时时间]

* @return [type] [接口返回数据]

*/

function http($url, $params, $method = 'GET', $header = array(), $timeout = 5)

{

// POST 提交方式的传入 $set_params 必须是字符串形式

$opts = array(

CURLOPT_TIMEOUT => $timeout,

CURLOPT_RETURNTRANSFER => 1,

CURLOPT_SSL_VERIFYPEER => false,

CURLOPT_SSL_VERIFYHOST => false,

CURLOPT_HTTPHEADER => $header

);

/* 根据请求类型设置特定参数 */

switch (strtoupper($method)) {

case 'GET':

$opts[CURLOPT_URL] = $url . '?' . http_build_query($params);

break;

case 'POST':

$params = http_build_query($params);

$opts[CURLOPT_URL] = $url;

$opts[CURLOPT_POST] = 1;

$opts[CURLOPT_POSTFIELDS] = $params;

break;

case 'DELETE':

$opts[CURLOPT_URL] = $url;

$opts[CURLOPT_HTTPHEADER] = array("X-HTTP-Method-Override: DELETE");

$opts[CURLOPT_CUSTOMREQUEST] = 'DELETE';

$opts[CURLOPT_POSTFIELDS] = $params;

break;

case 'PUT':

$opts[CURLOPT_URL] = $url;

$opts[CURLOPT_POST] = 0;

$opts[CURLOPT_CUSTOMREQUEST] = 'PUT';

$opts[CURLOPT_POSTFIELDS] = $params;

break;

default:

throw new Exception('不支持的请求方式!');

}

/* 初始化并执行curl请求 */

$ch = curl_init();

curl_setopt_array($ch, $opts);

$data = curl_exec($ch);

$error = curl_error($ch);

return $data;

}

php调用restful接口_分享一个PHP调用RestFul接口的函数相关推荐

  1. feign调用第三方接口_讲一个你不知道的事:SringCloud的feign的继承特性

    前言 说起SpringChoud的feign大家用过的都说好.Feign是Netflix开发的声明式.模板化的HTTP客户端.对于我们微服务来说,微服务之间的api调用,使用feign来说是再方便不过 ...

  2. python调用api应用接口_第三方免费快递物流查询接口平台(快递鸟)api接口调用...

    随着网购的发展,快递业也随之壮大.快递查询接口对接的需求量也越来越大,下面是对免费快递接口做的整理,并附上调用流程,分享给大家. 项目开发中,有些需求难免会用到关于快递的一些Api接口:本篇主要介绍的 ...

  3. php微信_分享一个完整的微信开发php代码

    这篇文章主要为大家分享一个完整的微信开发php代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了微信开发php代码,供大家参考,具体内容如下 //封装成一个微信接口类 cla ...

  4. java异常的总接口_重构:Java特别的接口修改:在throws子句中添加一个异常?

    我用具体的代码来解释下吧 接口A,有方法X public interface A { public void methodX() throws IOException; } 在用户模块有这样一段调用 ...

  5. 老许,免费分享一个python短信接口,包含200条短信,你要不要?

    今天给大家分享一个免费的python短信接口.可以用于短信注册.登录.密码找回.短信通知等场景. 使用方法如下: 1.下载资源包,按照文档申请签名和模板,就可以看到200条短信额度了 2.在代码中填写 ...

  6. emwin 仪表_分享一个emWin软键盘控件

    分享一个emWin软键盘控件 [复制链接] 本帖最后由 glcd 于 2016-6-27 16:30 编辑 花了两天时间做了个emWin软键盘控件,并命名为ButtonSKB控件: image001. ...

  7. vc++6.0获取磁盘基本信息_分享一个实用脚本--一键获取linux内存、cpu、磁盘IO等信息...

    概述 今天主要分享一个shell脚本,用来获取linux系统CPU.内存.磁盘IO等信息. 脚本 #!/bin/bash # 获取要监控的本地服务器IP地址 IP=`ifconfig | grep i ...

  8. 编写一个弹出式菜单的shell程序_分享一个有趣的shell脚本--实现抓阄程序

    概述 今天主要分享一个有趣的shell脚本,用来实现抓阄,平时就不用剪刀石头布了. 需求 使用shell编写一个抓阄的程序: 1.执行脚本后,输入英文名字全拼,产生随机数01-99之间的数字,数字越大 ...

  9. mysql数据库新建一个递增的_分享一个mysql实验—基于数据库事务隔离级别RR及RC的测试...

    概述 今天主要分享一个最近做的实验,主要是测试mysql数据库在RR和RC不同事务隔离级别下的表现. MySQL使用可重复读来作为默认隔离级别的主要原因是语句级的Binlog.RR能提供SQL语句的写 ...

最新文章

  1. 关于request取中文字符串变?的解决办法
  2. 基于音乐的脑机接口——采访Stefan Ehrlich 和 Kat Agres(上)
  3. 5.3.6 虚拟地址、线性地址和物理地址之间的关系
  4. Ubuntu 18安装 chrome
  5. docker 分布式 lnmp 镜像制作
  6. SAP UI5 DatePicker控件和语言设置相关的属性详解
  7. mysql内部损坏_mysql表损坏故障案例
  8. python动态图表变化_Python数据可视化 pyecharts实现各种统计图表过程详解
  9. linux防火墙桌面关闭端口,Linux关闭防火墙,开放端口
  10. python读取txt矩阵数据(转换为excel格式利用pandas读取)
  11. 用一台笔记本跑ROVIO
  12. 【学习笔记】斯坦福大学公开课(机器学习) 之生成学习算法:朴素贝叶斯
  13. Unity MasterServer主服务器
  14. OpenFOAM中重力的植入方式
  15. Flash地址空间的数据读取
  16. 数据分析入门:15种EXCEL数据分析功能
  17. 联想E431 win10+Unbutun+Deepin系统安装
  18. 集团企业邮箱申请哪家的好,怎么选择?
  19. JS_画中画,video视频播放器
  20. 单片机控制秒表C语言程序,89C51单片机秒表的设计(全文完整版)

热门文章

  1. linux启动keepalived服务,llinux企业常用服务---HA+keepalived双机热备
  2. c语言malloc用法 数组,详解C语言用malloc函数申请二维动态数组的实例
  3. aux 参数 linux,Linux下ps aux命令中STAT的参数含义(转)
  4. vue-cli项目布署问题解决:空白页、静态资源文件404错误、refrenceError:promise未定义(部分浏览器不支持ES6语法)
  5. 百度地图API实现地图应用
  6. Java Stream Collectors.groupingBy()实现分组(单字段分组,多字段分组)
  7. spring aop 中@annotation()和自定义注解的使用
  8. 【java8新特性】——Optional详解(三)
  9. 登录用户名和密码相同问题
  10. ecshop nginx php-fpm,ecshop在nginx下配置常见问题