>백엔드 개발 >PHP 튜토리얼 >php中使用curl访问https链接注意事项

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

WBOY
WBOY원래의
2016-06-23 13:11:511152검색

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.