我的任务是从https://test24.highrisehq.com/tasks/upcoming.xml检索一个xml,它是一个安全连接,需要身份验证。我试图实现这一使用curl,但我不知道为什么用户名和密码的事情是不为我工作。下面是我的代码:
$url = "https://test24.highrisehq.com/tasks/upcoming.xml";
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/xml', 'Content-Type: application/xml'));
curl_setopt($ch, CURLOPT_USERPWD, "omayrakhtar@gmail.com:akhtar1234");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,true);
curl_setopt($ch, CURLOPT_CAINFO, "D:'wamp'www'xml'-.highrisehq");
//curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_URL, $url);
$result = curl_exec($ch);
print_r($result);
问题是,当我将VERIFYPEER
设置为true
时,我在浏览器上没有显示任何内容,当它设置为false
时,我得到HTTP基本:拒绝访问。curl和openssl都是启用的。代码中的凭证是正确的,如果有人想使用它,他是非常受欢迎的。非常感谢您的帮助。
对
Umair
将CURLOPT_SSL_VERIFYPEER标志设置为false仅表明您对验证ssl证书不感兴趣,并且与您失败的HTTP身份验证无关。如果您想启用证书验证,您可能需要考虑安装ca-bundle。
当前真正的问题是HTTP验证。似乎您提供的凭据(CURLOPT_USERPWD)没有授予您所需的权限。您必须与他们联系以获得工作证书。