php使用curl获取https请求的方法


Posted in PHP onFebruary 11, 2015

本文实例讲述了php使用curl获取https请求的方法。分享给大家供大家参考。具体分析如下:

今日在做一个项目,需要curl获取第三方的API,对方的API是https方式的。
之前使用curl能获取http请求,但今天获取https请求时,出现了以下的错误提示:证书验证失败。

SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed 

解决方法为在curl请求时,加入:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查  

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true);  // 从证书中检查SSL加密算法是否存在

curl https请求代码

<?php  

/** curl 获取 https 请求 

* @param String $url        请求的url 

* @param Array  $data       要?送的?? 

* @param Array  $header     请求时发送的header 

* @param int    $timeout    超时时间,默认30s 

*/  

function curl_https($url, $data=array(), $header=array(), $timeout=30){  

    $ch = curl_init();  

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查  

    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true);  // 从证书中检查SSL加密算法是否存在  

    curl_setopt($ch, CURLOPT_URL, $url);  

    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);  

    curl_setopt($ch, CURLOPT_POST, true);  

    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));  

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);   

    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);  

  

    $response = curl_exec($ch);  

  

    if($error=curl_error($ch)){  

        die($error);  

    }  

  

    curl_close($ch);  

  

    return $response;  

  

}  

  

// 调用  

$url = 'https://www.example.com/api/message.php';  

$data = array('name'=>'fdipzone');  

$header = array();  

  

$response = curl_https($url, $data, $header, 5);  

  

echo $response;  

?>

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

PHP 相关文章推荐
第十节--抽象方法和抽象类
Nov 16 PHP
php函数间的参数传递(值传递/引用传递)
Sep 23 PHP
php 判断网页是否是utf8编码的方法
Jun 06 PHP
PHP中soap的用法实例
Oct 24 PHP
JavaScript实现滚动栏效果的方法
Apr 27 PHP
php结合curl实现多线程抓取
Jul 09 PHP
PHP编写学校网站上新生注册登陆程序的实例分享
Mar 21 PHP
PHP实现动态执行代码的方法
Mar 25 PHP
替换php字符串中的单引号为双引号的方法
Feb 16 PHP
php实现文件与16进制相互转换的方法示例
Feb 16 PHP
thinkPHP中钩子的使用方法实例分析
Nov 16 PHP
PHP autoload使用方法及步骤详解
Sep 05 PHP
php+html5使用FormData对象提交表单及上传图片的方法
Feb 11 #PHP
php判断并删除空目录及空子目录的方法
Feb 11 #PHP
php获取YouTube视频信息的方法
Feb 11 #PHP
php实现图片局部打马赛克的方法
Feb 11 #PHP
php实现获取文件mime类型的方法
Feb 11 #PHP
php强制更新图片缓存的方法
Feb 11 #PHP
Laravel中使用自己编写类库的3种方法
Feb 10 #PHP
You might like
全国FM电台频率大全 - 29 青海省
2020/03/11 无线电
php中的单引号、双引号和转义字符详解
2017/02/16 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
postman的安装与使用方法(模拟Get和Post请求)
2018/08/06 PHP
一个对于Array的简单扩展
2006/10/03 Javascript
跟随鼠标旋转的文字
2006/11/30 Javascript
再次更新!MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类 Ver 1.6)
2007/02/05 Javascript
让iframe自适应高度(支持XHTML,支持FF)
2007/07/24 Javascript
jquery下异步提交表单 异步跨域提交表单
2010/11/17 Javascript
js判断输入是否为正整数、浮点数等数字的函数代码
2010/11/17 Javascript
js静态方法与实例方法分析
2011/07/04 Javascript
在css加载完毕后自动判断页面是否加入css或js文件
2014/09/10 Javascript
一个JavaScript用逗号分割字符串实例
2014/09/22 Javascript
分类解析jQuery选择器
2016/11/23 Javascript
jquery mobile移动端幻灯片滑动切换效果
2020/04/15 Javascript
使用vue.js实现checkbox的全选和多个的删除功能
2017/02/17 Javascript
使用jQuery的load方法设计动态加载及解决被加载页面js失效问题
2017/03/01 Javascript
解决JavaScript layui 下拉框不显示的问题
2018/08/14 Javascript
JavaScript实现旋转木马轮播图
2020/03/16 Javascript
Vue实现圆环进度条的示例
2021/02/06 Vue.js
python中list循环语句用法实例
2014/11/10 Python
Python网络编程中urllib2模块的用法总结
2016/07/12 Python
CentOS 7 安装python3.7.1的方法及注意事项
2018/11/01 Python
pyqt5 实现在别的窗口弹出进度条
2019/06/18 Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
2019/12/26 Python
python代码中怎么换行
2020/06/17 Python
Melijoe英国官网:法国儿童时尚网站
2016/11/18 全球购物
英国领先的餐饮折扣俱乐部:Gourmet Society
2020/07/26 全球购物
C语言变量的命名规则都有哪些
2013/12/27 面试题
庆中秋节主题活动方案
2014/02/03 职场文书
秋季运动会广播稿
2014/02/22 职场文书
中共广东省委常委会党的群众路线教育实践活动整改方案
2014/09/23 职场文书
法务专员岗位职责
2015/02/14 职场文书
导游词之白茶谷九龙峡
2019/10/23 职场文书
Python 实现Mac 屏幕截图详解
2021/10/05 Python
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/07 其他游戏