Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php中使用curl访问https链接注意事项

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

WBOY
WBOYasal
2016-06-23 13:11:511086semak imbas

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

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn