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 相关文章推荐
生成静态页面的php函数,php爱好者站推荐
Mar 19 PHP
Admin generator, filters and I18n
Oct 06 PHP
php explode函数实例代码
Feb 27 PHP
php实现在线生成条形码示例分享(条形码生成器)
Dec 30 PHP
微信公众平台天气预报功能开发
Jul 06 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
Jul 08 PHP
个人写的PHP验证码生成类分享
Aug 21 PHP
destoon调用discuz论坛中带图片帖子的实现方法
Aug 21 PHP
深入理解PHP中的Streams工具
Jul 03 PHP
学习php设计模式 php实现原型模式(prototype)
Dec 07 PHP
Zend Framework教程之Bootstrap类用法概述
Mar 14 PHP
php中isset与empty函数的困惑与用法分析
Jul 05 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
提升PHP执行速度全攻略(上)
2006/10/09 PHP
PHP检测字符串是否为UTF8编码的常用方法
2014/11/21 PHP
php正则preg_replace_callback函数用法实例
2015/06/01 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
符合W3C网页标准的iframe标签的使用方法
2007/07/19 Javascript
JavaScript 新手24条实用建议[TUTS+]
2009/06/21 Javascript
js图片向右一张张滚动效果实例代码
2013/11/23 Javascript
js获取当前地址 JS获取当前URL的示例代码
2014/02/26 Javascript
Javascript节点关系实例分析
2015/05/15 Javascript
基于jquery实现在线选座订座之影院篇
2015/08/24 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
2017/03/15 Javascript
Angularjs自定义指令实现分页插件(DEMO)
2017/09/16 Javascript
Vue通过URL传参如何控制全局console.log的开关详解
2017/12/07 Javascript
vue cli 全面解析
2018/02/28 Javascript
vue如何通过id从列表页跳转到对应的详情页
2018/05/01 Javascript
微信小程序中显示倒计时代码实例
2019/05/09 Javascript
Nodejs libuv运行原理详解
2019/08/21 NodeJs
Python 包含汉字的文件读写之每行末尾加上特定字符
2016/12/12 Python
selenium python浏览器多窗口处理代码示例
2018/01/15 Python
用tensorflow构建线性回归模型的示例代码
2018/03/05 Python
python输入多行字符串的方法总结
2019/07/02 Python
Python调用Windows命令打印文件
2020/02/07 Python
python except异常处理之后不退出,解决异常继续执行的实现
2020/04/25 Python
如何表示python中的相对路径
2020/07/08 Python
使用pygame实现垃圾分类小游戏功能(已获校级二等奖)
2020/07/23 Python
python使用dlib进行人脸检测和关键点的示例
2020/12/05 Python
Autopep8的使用(python自动编排工具)
2021/03/02 Python
国际鲜花速递专家:Floraqueen
2016/11/24 全球购物
欧洲最大的球衣网上商店:Kitbag
2017/11/11 全球购物
护理专科毕业推荐信
2013/11/10 职场文书
出纳会计岗位职责
2014/03/12 职场文书
团支书竞选演讲稿
2014/04/28 职场文书
大学生个人学年总结
2015/02/15 职场文书
蜗居观后感
2015/06/11 职场文书
2016年社会管理综治宣传月活动总结
2016/03/16 职场文书
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
2021/04/13 Python