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 获取本机外网/公网IP的代码
May 09 PHP
PHP header函数分析详解
Aug 06 PHP
input file获得文件根目录简单实现
Apr 26 PHP
浅析PHP中的字符串编码转换(自动识别原编码)
Jul 02 PHP
IIS下PHP的三种配置方式对比
Nov 20 PHP
php实现三级级联下拉框
Apr 17 PHP
PHP环境搭建(php+Apache+mysql)
Nov 14 PHP
利用php生成验证码
Feb 23 PHP
解决form中action属性后面?传递参数 获取不到的问题
Jul 21 PHP
PHP+mysql实现的三级联动菜单功能示例
Feb 15 PHP
PHP实现的AES 128位加密算法示例
Sep 16 PHP
PHP pthreads v3下同步处理synchronized用法示例
Feb 21 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
4月1日重磅发布!《星际争霸II》6.0.0版本更新
2020/04/09 星际争霸
php number_format() 函数通过千位分组来格式化数字的实现代码
2013/08/06 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
2017/09/15 PHP
prototype与jquery下Ajax实现的差别
2009/09/13 Javascript
eval与window.eval的差别分析
2011/03/17 Javascript
推荐20家国外的脚本下载网站
2011/04/28 Javascript
Jquery的hide及toggle方法让超链接慢慢消失
2013/09/06 Javascript
jQuery中校验时间格式的正则表达式小结
2013/09/22 Javascript
JavaScript程序开发之JS代码放置的位置
2016/01/15 Javascript
jQuery隐藏和显示效果实现
2016/04/06 Javascript
js流动式效果显示当前系统时间
2016/05/16 Javascript
Java  Spring 事务回滚详解
2016/10/17 Javascript
jquery中done和then的区别(详解)
2017/12/19 jQuery
[39:18]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第二场 12.17
2020/12/19 DOTA
在Python的Django框架中实现Hacker News的一些功能
2015/04/17 Python
在Python中操作字典之clear()方法的使用
2015/05/21 Python
利用Python代码实现数据可视化的5种方法详解
2018/03/25 Python
Python实现OpenCV的安装与使用示例
2018/03/30 Python
详解Django中间件的5种自定义方法
2018/07/26 Python
python实现的生成word文档功能示例
2019/08/23 Python
django 外键创建注意事项说明
2020/05/20 Python
Lookfantastic香港官网:英国知名美妆购物网站
2018/06/19 全球购物
德国在线香料制造商:Gewürzland
2020/03/10 全球购物
高校十八大报告感想
2014/01/27 职场文书
销售主管岗位职责
2014/02/08 职场文书
工厂门卫岗位职责范本
2014/04/04 职场文书
市级三好学生事迹材料
2014/08/27 职场文书
2014党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
焦点访谈观后感
2015/06/11 职场文书
canvas多重阴影发光效果实现
2021/04/20 Javascript
python实现的web监控系统
2021/04/27 Python
如何将JavaScript将数组转为树形结构
2021/06/02 Javascript
SpringBoot整合Redis入门之缓存数据的方法
2021/11/17 Redis
java协程框架quasar和kotlin中的协程对比分析
2022/02/24 Java/Android
Nginx中使用Lua脚本与图片的缩略图处理的实现
2022/03/18 Servers
英国数字版游戏销量周榜公布 《小缇娜的奇幻之地》登顶
2022/04/03 其他游戏