2013-03-06 106 views
3

我試圖從Freebase API接收數據。我手動構建了一個工作API調用,它在我的瀏覽器中爲我提供了有效的JSON響應。所以我寫了一個PHP函數,它應該做的正是:Freebase API調用在瀏覽器中工作,但捲曲失敗

$service_url = 'https://www.googleapis.com/freebase/v1/search'; 
$params = array(
      'filter' => '(all name:"Avatar")', 
      'lang' => 'en', 
      'type' => 'film/film', 
      'key' => Configure::read('Api.Key') 
     ); 
$url = $service_url . '?' . http_build_query($params); 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$response = json_decode(curl_exec($ch), true); 
curl_close($ch); 

我得到的迴應是NULL,但如果我利用內置的網址,並輸入到自己的Chrome REST插件或者直接查看它在瀏覽器中,我得到有效的答覆。如果url有效,爲什麼我的curl函數會失敗?

+0

如果您只是包含內聯鍵,如'key'=>'XXX-XXX-XXX',這是否工作?我剛剛嘗試過,它適用於我。 – 2013-03-06 19:44:15

+0

您是否檢查過curl_exec調用之後curl_error($ ch)的輸出是什麼? – asmecher 2013-06-13 17:43:25

回答

1

對於我來說,加入下面的一行工作。

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
相關問題