2012-03-08 68 views
2

我想从受密码保护的url获取json字符串。使用PHP和卷曲从密码保护的URL获取json数据

我认为我的代码应该可以工作,但是当我在浏览器中打开我的脚本时,我只是有一个空白页面。

这里是我的代码:

<?php 
error_reporting(E_ALL); 

$url = 'https://api.domain.com?api=latest&format=json'; 

$username = 'username'; 
$password = 'password'; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); 
//curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
//curl_setopt($ch, CURLOPT_REFERER, $url); 

$result = curl_exec($ch); 
$info = curl_getinfo($ch); 
curl_close($ch); 

$data = json_decode($result, true); 

print_r($data); 

?> 

任何帮助将非常感激。

+0

是curl_exec返回false?如果为false,则检查是否设置了curl_errno($ ch)和curl_error($ ch)。 – Tjkoopa 2012-03-08 13:47:51

+0

你有没有尝试在json_decode之前打印出$结果?结果有什么。这可能是一个更好的指示,如果卷曲参数设置正确与其他错误。同时打印出$ info以查看curl返回的消息。 – Churk 2012-03-08 13:52:19

+0

嗨@Churk,只是打印出'$ info',除url,content_type,namelookup_time和connect_time之外的所有内容都设置为0.现在试试你的建议@Tjkoopa。此外,打印'$ result'不会改变它:( – martincarlin87 2012-03-08 13:58:58

回答

1

尝试添加该

curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_UNRESTRICTED_AUTH, 1); 
+0

回来发布'curl_setopt($ ch,CURLOPT_SSL_VERIFYPEER,false);'修复了它,希望我早点见过你的帖子!谢谢 – martincarlin87 2012-03-08 15:46:54