2012-03-08 70 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