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 相关文章推荐
自己动手做一个SQL解释器
Oct 09 PHP
MySQL数据源表结构图示
Jun 05 PHP
GBK的页面输出JSON格式的php函数
Feb 16 PHP
mysql下创建字段并设置主键的php代码
May 16 PHP
PHP开发的一些注意点总结
Oct 12 PHP
PHP register_shutdown_function()函数的使用示例
Jun 23 PHP
总结PHP中数值计算的注意事项
Aug 14 PHP
PHP高效获取远程图片尺寸和大小的实现方法
Oct 20 PHP
阿里云的WindowsServer2016上部署php+apache
Jul 17 PHP
PHP date()格式MySQL中插入datetime方法
Jan 29 PHP
php 多继承的几种常见实现方法示例
Nov 18 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
Dec 20 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读取mysql乱码,用set names XXX解决的原理分享
2011/12/29 PHP
PHP取余函数介绍MOD(x,y)与x%y
2014/05/15 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
PHP合并两个或多个数组的方法
2019/01/20 PHP
理解JavaScript中的对象 推荐
2011/01/09 Javascript
鼠标右击事件代码(asp.net后台)
2011/01/27 Javascript
修改jQuery Validation里默认的验证方法
2012/02/14 Javascript
js实现杯子倒水问题自动求解程序
2013/03/25 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
2014/05/08 Javascript
js实现图片拖动改变顺序附图
2014/05/13 Javascript
JS基于FileSystemObject创建一个指定路径的TXT文本文件
2015/08/05 Javascript
js如何改变文章的字体大小
2016/01/08 Javascript
Javascript的表单验证长度
2016/03/16 Javascript
解析AngularJS中get请求URL出现的跨域问题
2016/12/01 Javascript
简单快速的实现js计算器功能
2017/08/17 Javascript
JavaScript数组的5种迭代方法
2017/09/29 Javascript
js使用xml数据载体实现城市省份二级联动效果
2017/11/08 Javascript
vue iview组件表格 render函数的使用方法详解
2018/03/15 Javascript
Python 多核并行计算的示例代码
2017/11/07 Python
python正则实现提取电话功能
2018/02/24 Python
python 实现调用子文件下的模块方法
2018/12/07 Python
python利用插值法对折线进行平滑曲线处理
2018/12/25 Python
python实现电子产品商店
2019/02/26 Python
wxPython色环电阻计算器
2019/11/18 Python
如何在scrapy中捕获并处理各种异常
2020/09/28 Python
纯CSS3实现图片无间断轮播效果
2016/08/25 HTML / CSS
马来西亚在线购物:POPLOOK.com
2019/12/09 全球购物
设计模式的基本要素是什么
2014/04/21 面试题
小学岗位竞聘方案
2014/01/22 职场文书
自荐信的基本格式
2014/02/22 职场文书
党员先锋岗事迹材料
2014/05/08 职场文书
珍爱生命演讲稿
2014/05/10 职场文书
服务标语大全
2014/06/18 职场文书
培训师岗位职责
2015/02/14 职场文书
一文弄懂MySQL中redo log与binlog的区别
2022/02/15 MySQL
HTML实现仿Windows桌面主题特效的实现
2022/06/28 HTML / CSS