2012-01-20 53 views
0

我使用下面的代码来访问一个网址(URL使用https协议,并具有有效的证书)使用cURL从https读取响应

// Initialize session and set URL. 
$url = https://my url; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 

// Set so curl_exec returns the result instead of outputting it. 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

// Get the response and close the channel. 
$response = curl_exec($ch); 
curl_close($ch); 

但输出我得到的是这样的:

Failed: Error Number: 60. Reason: SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

有人能指导我吗?

回答

2

使用 'CURLOPT_RETURNTRANSFER'

$res = curl_init ('url'); 
curl_setopt($res,CURLOPT_RETURNTRANSFER,true); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
$out = curl_exec($res); 
curl_close($res); 
echo $out; 

更多信息读取this

+0

谢谢,至于我能理解,您提供的代码片段将再次SSL证书?我对吗? –

+1

@NewBee是的,你需要吗?还要别的吗 ? – Dau

+0

谢谢,我想学习的东西,现在我将尝试解析输出,并保存在XMl,试图学习,学习和学习,感谢帮助男孩... –

0

尝试增加:

 

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
 
+0

感谢您的指导,我怎么能在里面添加SSL证书?避免冲突? –