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

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

curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
登录后复制

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

下面附上整个代码

登录后复制
如果需要验证证书,则可以使用以下代码

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); //// 检查证书中是否设置域名
登录后复制

09-04 10:19