API-интерфейс Freebase работает в браузере, но не работает с завитком

Я пытаюсь получить данные из API Freebase. Я вручную создал рабочий вызов API, который дал мне действительный ответ JSON в моем браузере. Поэтому я написал функцию PHP, которая должна делать именно это:

$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 , но если я возьму встроенный URL-адрес и войду в свой модуль Chrome REST или просмотрю его непосредственно в браузере, я получаю действительный ответ. Если URL-адрес действителен, почему моя функция завивки не работает?

Solutions Collecting From Web of "API-интерфейс Freebase работает в браузере, но не работает с завитком"

Для меня добавив нижнюю строку.

 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

Я предполагаю, что вы видите NULL потому что curl_exec возвращает false а затем json_decode преобразует значение false в NULL .

Это означает, что, как вы подозревали, curl_exec не работает. Я не уверен, почему, но я бы начал с отладки с curl_error () и curl_errno (), чтобы получить больше информации о том, что вызывает завихрение.

Ссылка: curl_exec () всегда возвращает false