Home  >  Article  >  Backend Development  >  php中使用curl访问https链接注意事项

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

WBOY
WBOYOriginal
2016-06-23 13:11:511113browse

有项任务要用到优酷视频的开发接口,我想着用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); //// 检查证书中是否设置域名

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn