前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >php使用curl访问https示例

php使用curl访问https示例

作者头像
夏时
发布2018-06-26 16:48:24
2.3K0
发布2018-06-26 16:48:24
举报
文章被收录于专栏:夏时夏时

今日在做一个项目,需要curl获取第三方的API,对方的API是https方式的。 之前使用curl能获取http请求,但今天获取https请求时,返回的内容总是为空,查阅资料后发现用curl访问https需要添加以下两行代码:

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

封装成一个函数如下:

  1. /** curl 获取 https 请求 
  2. * @param String $url 请求的url 
  3. * @param Array $data 要发送的数据
  4. * @param Array $header 请求时发送的header 
  5. * @param int $timeout 超时时间,默认30s 
  6. */
  7. function curl_https($url, $data=array(), $header=array(), $timeout=30){   
  8. $ch = curl_init();   
  9.     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查 
  10.     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); // 从证书中检查SSL加密算法是否存在 
  11.     curl_setopt($ch, CURLOPT_URL, $url);   
  12.     curl_setopt($ch, CURLOPT_HTTPHEADER, $header);   
  13.     curl_setopt($ch, CURLOPT_POST, true);   
  14.     curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));   
  15.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);   
  16.     curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);   
  17. $response = curl_exec($ch);   
  18. if($error=curl_error($ch)){   
  19. die($error);   
  20.     }   
  21.     curl_close($ch);   
  22. return $response;   
  23. }   

使用示例:

  1. $url = 'https://www.example.com/api/message.php'; 
  2. $data = array('name'=>'fdipzone');   
  3. $header = array();   
  4. $response = curl_https($url, $data, $header, 5);   
  5. echo $response;   
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档