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 相关文章推荐
php $_SERVER当前完整url的写法
Nov 12 PHP
php性能优化分析工具XDebug 大型网站调试工具
May 22 PHP
php学习笔记 面向对象的构造与析构方法
Jun 13 PHP
php 强制下载文件实现代码
Oct 28 PHP
php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
Nov 14 PHP
ThinkPHP分页实例
Oct 15 PHP
仿dedecms下拉分页样式修改的thinkphp分页类实例
Oct 30 PHP
PHP中文竖排转换实现方法
Oct 23 PHP
php如何获取文件的扩展名
Oct 28 PHP
visual studio code 调试php方法(图文详解)
Sep 15 PHP
PHP排序算法之堆排序(Heap Sort)实例详解
Apr 21 PHP
PHP实现两种排课方式
Jun 26 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
PHP处理SQL脚本文件导入到MySQL的代码实例
2014/03/17 PHP
PHP制作3D扇形统计图以及对图片进行缩放操作实例
2014/10/23 PHP
PHP连接MYSQL数据库的3种常用方法
2017/02/27 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
2017/06/07 PHP
php设计模式之工厂方法模式分析【星际争霸游戏案例】
2020/01/23 PHP
通过JAVASCRIPT读取ASP设定的COOKIE
2007/02/15 Javascript
Javascript 静态页面实现随机显示广告的办法
2010/11/17 Javascript
js过滤HTML标签以及空格的思路及代码
2013/05/24 Javascript
利用NodeJS和PhantomJS抓取网站页面信息以及网站截图
2013/11/18 NodeJs
javascript实现列表滚动的方法
2015/07/30 Javascript
js检测离开或刷新页面时表单数据是否更改的方法
2016/08/02 Javascript
基于angularJS的表单验证指令介绍
2016/10/21 Javascript
js实现随机抽选效果、随机抽选红色球效果
2017/01/13 Javascript
JavaScript数据结构之二叉查找树的定义与表示方法
2017/04/12 Javascript
Angularjs 双向绑定时字符串的转换成数字类型的问题
2017/06/12 Javascript
js实现拖拽上传图片功能
2017/08/01 Javascript
详解几十行代码实现一个vue的状态管理
2019/01/28 Javascript
vue实现表单未编辑或未保存离开弹窗提示功能
2020/04/08 Javascript
matlab中实现矩阵删除一行或一列的方法
2018/04/04 Python
Python通过属性手段实现只允许调用一次的示例讲解
2018/04/21 Python
Python使用Windows API创建窗口示例【基于win32gui模块】
2018/05/09 Python
Python分割指定页数的pdf文件方法
2018/10/26 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
2019/01/15 Python
python中类的输出或类的实例输出为这种形式的原因
2019/08/12 Python
Python + Requests + Unittest接口自动化测试实例分析
2019/12/12 Python
详解Pandas 处理缺失值指令大全
2020/07/30 Python
印尼美容产品购物网站:PerfectBeauty.id
2017/12/01 全球购物
高级运动鞋:GREATS
2019/07/19 全球购物
说一下Linux下有关用户和组管理的命令
2016/01/04 面试题
会计助理的岗位职责
2013/11/29 职场文书
关于祖国的演讲稿
2014/05/04 职场文书
2014年纪委工作总结
2014/12/05 职场文书
大学生个人年度总结范文
2015/02/15 职场文书
求职自我评价怎么写
2015/03/09 职场文书
保险内勤岗位职责
2015/04/13 职场文书
详解JavaScript中的执行上下文及调用堆栈
2021/04/29 Javascript