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图片验证码代码
Mar 27 PHP
PHP 截取字符串 分别适合GB2312和UTF8编码情况
Feb 12 PHP
php获取用户IPv4或IPv6地址的代码
Nov 15 PHP
PHP错误和异长常处理总结
Mar 06 PHP
查找php配置文件php.ini所在路径的二种方法
May 26 PHP
php实现给图片加灰色半透明效果的方法
Oct 20 PHP
php查看当前Session的ID实例
Mar 16 PHP
全面解析PHP操作Memcache基本函数
Jul 14 PHP
PHP使用strrev翻转中文乱码问题的解决方法
Jan 13 PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
Mar 16 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
Jun 16 PHP
Laravel中获取IP的真实地理位置
Apr 01 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报表之jpgraph柱状图实例代码
2011/08/22 PHP
ThinkPHP行为扩展Behavior应用实例详解
2014/07/22 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
2016/06/24 PHP
js计数器代码
2006/11/04 Javascript
JSON 学习之JSON in JavaScript详细使用说明
2010/02/23 Javascript
JavaScript浏览器选项卡效果
2010/08/25 Javascript
javascript处理表单示例(javascript提交表单)
2014/04/28 Javascript
JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
2014/12/20 Javascript
js实现拖拽效果
2015/02/12 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖动基本操作
2015/11/30 Javascript
使用Bootstrap框架制作查询页面的界面实例代码
2016/05/27 Javascript
详解前端构建工具gulpjs的使用介绍及技巧
2017/01/19 Javascript
layui实现点击按钮给table添加一行
2018/08/10 Javascript
React优化子组件render的使用
2019/05/12 Javascript
改变layer confirm弹窗按钮的颜色方法
2019/09/12 Javascript
浅谈vue中document.getElementById()拿到的是原值的问题
2020/07/26 Javascript
解决ant-design-vue中menu菜单无法默认展开的问题
2020/10/31 Javascript
通过Python使用saltstack生成服务器资产清单
2016/03/01 Python
利用python爬取斗鱼app中照片方法实例
2017/12/03 Python
Python实现上下班抢个顺风单脚本
2018/02/07 Python
Python Numpy 实现交换两行和两列的方法
2019/06/26 Python
python调试神器PySnooper的使用
2019/07/03 Python
Python线程条件变量Condition原理解析
2020/01/20 Python
一篇文章搞懂python的转义字符及用法
2020/09/03 Python
python生成word合同的实例方法
2021/01/12 Python
Python字节单位转换(将字节转换为K M G T)
2021/03/02 Python
CSS3中的clip-path使用攻略
2015/08/03 HTML / CSS
骆驼官方商城:CAMEL
2016/11/22 全球购物
Allsole美国/加拿大:英国一家专门出售品牌鞋子的网站
2018/10/21 全球购物
英语自荐信常用语句
2013/12/13 职场文书
责任书格式范文
2014/07/28 职场文书
车间主任岗位职责
2015/02/03 职场文书
工作推荐信模板
2015/03/25 职场文书
代理词怎么写
2015/05/25 职场文书
mysql部分操作
2021/04/05 MySQL
spring 项目实现限流方法示例
2022/07/15 Java/Android