文档章节

curl 获取 https 请求方法

 蜗牛奔跑
发布于 2016/03/08 11:11
字数 307
阅读 136
收藏 3

curl 获取 https 请求方法


今日在做一个项目,需要curl获取第三方的API,对方的API是https方式的。

之前使用curl能获取http请求,但今天获取https请求时,出现了以下的错误提示:证书验证失败。

[plain] view plain copy 在CODE上查看代码片派生到我的代码片

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


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

[php] view plain copy 在CODE上查看代码片派生到我的代码片

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

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


curl https请求代码

[php] view plain copy 在CODE上查看代码片派生到我的代码片

  1. <?php  

  2. /** curl 获取 https 请求 

  3. * @param String $url        请求的url 

  4. * @param Array  $data       要發送的數據 

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

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

  7. */  

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

  9.   

  10.     $ch = curl_init();  

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

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

  13.     curl_setopt($ch, CURLOPT_URL, $url);  

  14.     curl_setopt($ch, CURLOPT_HTTPHEADER, $header);  

  15.     curl_setopt($ch, CURLOPT_POST, true);  

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

  17.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);   

  18.     curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);  

  19.   

  20.     $response = curl_exec($ch);  

  21.   

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

  23.         die($error);  

  24.     }  

  25.   

  26.     curl_close($ch);  

  27.   

  28.     return $response;  

  29.   

  30. }  

  31.   

  32. // 调用  

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

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

  35. $header = array();  

  36.   

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

  38.   

  39. echo $response;  

  40. ?>  


© 著作权归作者所有

粉丝 38
博文 615
码字总数 118352
作品 0
海淀
私信 提问
《CURL技术知识教程》系列分享专栏

《CURL技术知识教程》已整理成PDF文档,点击可直接下载至本地查阅 https://www.webfalse.com/read/201737.html 文章 PHP采集相关教程之一 CURL函数库 php中通过curl模拟登陆discuz论坛的实现...

开元中国2015
2018/11/06
50
0
《CURL技术知识教程》系列技术教程整理

《CURL技术知识教程》系列技术教程整理 有时间会不断更新,大家有什么好的推荐的可以在下面回复,我会酌情收录 1PHP采集相关教程之一 CURL函数库 2php中通过curl模拟登陆discuz论坛的实现代码...

开元中国2015
2015/05/07
470
0
php之curl实现http与https请求的方法

这篇文章主要介绍了php之curl实现http与https请求的方法,分别讲述了PHP访问http网页与访问https网页的实例,以及相关的注意事项,需要的朋友可以参考下。 本文实例讲述了php之curl实现http与h...

Corwien
2016/05/18
133
0
双剑合璧——掌握 cURL 和 Dig 走天涯

如今随着大量的应用转移到网络,作为开发者,会经常做一些通讯测试,例如从网站获取信息、模拟用户向网站提交或者上传数据,查看应用通讯情况等等,现在变成了非常重要的任务。 一起来认识 ...

又拍云
07/19
0
0
YurunHttp v3.1.0,支持 Curl&Swoole 的 HTTP 请求库

YurunHttp 是开源的 PHP HTTP 类库,支持链式操作,简单易用。 支持所有常见的 GET、POST、PUT、DELETE、UPDATE 等请求方式,支持上传下载、设置和读取 header、Cookie、请求参数、失败重试、...

宇润
06/25
910
7

没有更多内容

加载失败,请刷新页面

加载更多

009、Linux 文件权限管理

Linux 文件权限管理

北岩
11分钟前
3
0
Kafka学习笔记(三)—Kafka消息丢失,消费重复

一、数据传输事务的定义 最多一次(at most once):消息不会被重复发送,但是可能丢失 最少一次 (at least once)消息可能会被重复发送,但是不会漏发送 精确一次(exactly once) 不会少发...

Algoric
15分钟前
4
0
ajax设置请求头部时遇到的问题

w3c规定 当请求的header包含以下字段时 会被zhong'zhi Accept-Charset Accept-Encoding Connection Content-Length Cookie Cookie2 Content-Transfer-Encoding Date Expect Host Keep-Alive......

Bing309
39分钟前
4
0
总结:Linux

一、目录 目录 作用 /bin 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。 /etc /home 存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,...

浮躁的码农
42分钟前
4
0
什么是 happens-before 原则?

Java 中 happens-before 原则,是在 JSR-133 中提出的。 原文摘要: • Each action in a thread happens-before every subsequent action in that thread. • An unlock on a monitor happe......

ConstXiong
55分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部