php实现的http请求封装示例


Posted in PHP onNovember 08, 2016

本文实例讲述了php的http请求封装。分享给大家供大家参考,具体如下:

/**
* 发送HTTP请求方法,目前只支持CURL发送请求
* @param string $url  请求URL
* @param array $params 请求参数
* @param string $method 请求方法GET/POST
* @return array $data  响应数据
*/
protected function http($url, $params, $method = 'GET', $header = array(), $multi = false) {
    $opts = array(CURLOPT_TIMEOUT => 30, 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);
        dump($opts[CURLOPT_URL]);
        break;
      case 'POST' :
        //判断是否传输文件
        $params = $multi ? $params : http_build_query($params);
        $opts[CURLOPT_URL] = $url;
        dump($opts[CURLOPT_URL]);
        $opts[CURLOPT_POST] = 1;
        $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);
    curl_close($ch);
    if ($error)
      throw new Exception('请求发生错误:' . $error);
    return $data;
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
IIS环境下快速安装、配置和调试PHP5.2.0
Dec 17 PHP
PHPWind 发帖回帖Api PHP版打包下载
Feb 08 PHP
PHP关于IE下的iframe跨域导致session丢失问题解决方法
Oct 10 PHP
php jquery 多文件上传简单实例
Dec 23 PHP
PHP中使用匿名函数操作数据库的例子
Nov 17 PHP
php支付宝接口用法分析
Jan 04 PHP
php实现excel中rank函数功能的方法
Jan 20 PHP
php绘制一条弧线的方法
Jan 24 PHP
php自定义类fsocket模拟post或get请求的方法
Jul 31 PHP
php微信公众账号开发之前五个坑(一)
Sep 18 PHP
PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图
May 15 PHP
Kindeditor编辑器添加图片上传水印功能(php代码)
Aug 03 PHP
PHP实现原生态图片上传封装类方法
Nov 08 #PHP
php使用FFmpeg接口获取视频的播放时长、码率、缩略图以及创建时间
Nov 07 #PHP
Yii2框架BootStrap样式的深入理解
Nov 07 #PHP
php 时间time与日期date之间的使用详解及区别
Nov 07 #PHP
php 微信公众平台开发模式实现多客服的实例代码
Nov 07 #PHP
深入了解PHP中的Array数组和foreach
Nov 06 #PHP
PHP运行模式汇总
Nov 06 #PHP
You might like
论建造顺序的重要性
2020/03/04 星际争霸
php,不用COM,生成excel文件
2006/10/09 PHP
PHP冒泡排序算法代码详细解读
2011/07/17 PHP
php利用单例模式实现日志处理类库
2014/02/10 PHP
PHPUnit测试私有属性和方法功能示例
2018/06/12 PHP
给jqGrid数据行添加修改和删除操作链接(之一)
2011/11/04 Javascript
javascript将数字转换整数金额大写的方法
2015/01/27 Javascript
瀑布流的实现方式(原生js+jquery+css3)
2020/06/28 Javascript
D3.js实现折线图的方法详解
2016/09/21 Javascript
详解JavaScript跨域总结与解决办法
2016/10/31 Javascript
利用jQuery异步上传文件的插件用法详解
2017/07/19 jQuery
JS运动特效之链式运动分析
2018/01/24 Javascript
vue.js实现只弹一次弹框
2018/01/29 Javascript
微信小程序实现导航栏选项卡效果
2020/06/19 Javascript
JavaScript实现动态添加、移除元素或属性的方法分析
2019/01/03 Javascript
js实现左右轮播图
2020/01/09 Javascript
Python 功能和特点(新手必学)
2015/12/30 Python
Python tornado队列示例-一个并发web爬虫代码分享
2018/01/09 Python
python网络爬虫 Scrapy中selenium用法详解
2019/09/28 Python
使用pytorch实现可视化中间层的结果
2019/12/30 Python
Django查询优化及ajax编码格式原理解析
2020/03/25 Python
TensorFLow 数学运算的示例代码
2020/04/21 Python
如何在python中实现线性回归
2020/08/10 Python
使用python对excel表格处理的一些小功能
2021/01/25 Python
美特斯邦威官方商城:邦购网
2016/10/13 全球购物
Java编程面试题
2016/04/04 面试题
劳资人员岗位职责
2013/12/19 职场文书
物理力学求职信
2014/02/18 职场文书
药剂专业自荐信范文
2014/04/16 职场文书
毕业生求职信
2014/06/10 职场文书
化工见习报告范文
2014/10/31 职场文书
小学生通知书评语
2014/12/31 职场文书
2015年幼儿教师个人工作总结
2015/05/20 职场文书
政工师工作总结2015
2015/05/26 职场文书
《游戏公平》教学反思
2016/02/20 职场文书
python缺失值填充方法示例代码
2022/12/24 Python