服务报价 | 域名主机 | 网络营销 | 软件工具| [加入收藏]
 热线电话: #
当前位置: 主页 > php教程 > php教程 >

php中使用curl访问https链接注意事项

时间:2016-04-04 21:28来源:未知 作者:最模板 点击:
项任务要用到优酷视频的开发接口,我想着用curl来访问获取数据。按照一般的写法写好请求,打印下数据一致是返回为false值。刚开始以为有什么防抓取的检测等,加了useragent参数也不

项任务要用到优酷视频的开发接口,我想着用curl来访问获取数据。按照一般的写法写好请求,打印下数据一致是返回为false值。刚开始以为有什么防抓取的检测等,加了useragent参数也不行。后来想到接口url使用的是https协议,这个需要ssl认证的。后来在网上查找相关资料得到解决,现在记录下来。

在请求中,加入下面两行代码即可

php;auto-links:false;">curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);

上面代码表示不需要进行ca认证和证书中域名认证

下面附上整个代码

<?php
    $ch=curl_init();
    $url='https://openapi.youku.com/v2/videos/by_category.json?';//请求接口参数未写完整,不影响代码
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);
    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
    $res=curl_exec($ch);
      $res=json_decode($res,1);
    var_dump($res);
?>
如果需要验证证书,则可以使用以下代码
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,true); // 只信任CA颁布的证书
$cacert=getcwd().'/youku.crt'; //证书的位置
curl_setopt($ch, CURLOPT_CAINFO, $cacert); // CA根证书
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,1); //// 检查证书中是否设置域名

(责任编辑:最模板)
顶一下
(0)
0%
踩一下
(1)
100%
------分隔线----------------------------
栏目列表
热点内容