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 相关文章推荐
解决phpmyadmin中文乱码问题。。。
Jan 18 PHP
PHP写UltraEdit插件脚本实现方法
Dec 26 PHP
PHP两种去掉数组重复值的方法比较
Jun 19 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
Mar 01 PHP
PHP简单操作MongoDB的方法(安装及增删改查)
May 26 PHP
jquery+thinkphp实现跨域抓取数据的方法
Oct 15 PHP
PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
Nov 25 PHP
php 解决扫描二维码下载跳转问题
Jan 13 PHP
PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
Jun 21 PHP
laravel5 Eloquent 实现事务方式
Oct 21 PHP
PHP7生产环境队列Beanstalkd用法详解
May 19 PHP
如何利用PHP实现上传图片功能详解
Sep 24 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
MYSQL环境变量设置方法
2007/01/15 PHP
php 多个submit提交表单 处理方法
2009/07/07 PHP
PHP文件读写操作之文件读取方法详解
2011/01/13 PHP
PHP $_FILES函数详解
2011/03/09 PHP
CURL状态码列表(详细)
2013/06/27 PHP
PHP编程中的常见漏洞和代码实例
2014/08/06 PHP
php将数组转换成csv格式文件输出的方法
2015/03/14 PHP
PHP的伪随机数与真随机数详解
2015/05/27 PHP
在laravel5.2中实现点击用户头像更改头像的方法
2019/10/14 PHP
KnockoutJS 3.X API 第四章之表单submit、enable、disable绑定
2016/10/10 Javascript
Angularjs 事件指令详细整理
2017/07/27 Javascript
微信小程序实现人脸检测功能
2018/05/25 Javascript
angularJs中$scope数据序列化的实例
2018/09/30 Javascript
layui table去掉右侧滑动条的实现方法
2019/09/05 Javascript
python检测远程服务器tcp端口的方法
2015/03/14 Python
Python JSON格式数据的提取和保存的实现
2019/03/22 Python
python3实现二叉树的遍历与递归算法解析(小结)
2019/07/03 Python
利用python计算windows全盘文件md5值的脚本
2019/07/27 Python
centos7之Python3.74安装教程
2019/08/15 Python
深入了解Python在HDA中的应用
2019/09/05 Python
pytorch 实现tensor与numpy数组转换
2019/12/27 Python
简单了解python shutil模块原理及使用方法
2020/04/28 Python
HTML5声音录制/播放功能的实现代码
2018/05/03 HTML / CSS
我看到了用指针调用函数的不同语法形式
2014/07/16 面试题
自荐信如何“自荐”
2013/10/24 职场文书
员工工作表扬信范文
2014/01/13 职场文书
会计的岗位职责
2014/03/15 职场文书
天猫某品牌专卖店运营计划书
2014/03/21 职场文书
运动会演讲稿200字
2014/08/25 职场文书
实习证明格式范文
2014/10/14 职场文书
教师师德表现自我评价
2015/03/05 职场文书
2016年度先进班组事迹材料
2016/03/01 职场文书
党员公开承诺书2016
2016/03/24 职场文书
Python基础之数据结构详解
2021/04/28 Python
Python标准库之typing的用法(类型标注)
2021/06/02 Python
详解如何用Python实现感知器算法
2021/06/18 Python