php - Freebase API 调用在浏览器中有效,但因 curl 而失败

标签 php json curl freebase

我正在尝试从 Freebase API 接收数据。我手动构建了一个有效的 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 有效,为什么我的 curl 函数会失败?

最佳答案

对我来说,添加以下行是可行的。

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

关于php - Freebase API 调用在浏览器中有效,但因 curl 而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15250069/

相关文章:

带有集成 Web 服务器的 PHP IDE

python - 我们如何使用 pandas 在 python 中使用 Coalesce 来处理多个数据帧

bash - curl 到 tar 以用管道压缩

php - 如何用PHP连接MySQL(WAMP)数据库,并处理错误?

php - 如何使用 preg_match() 或其他方式找到确切的数字或单词

PHP 将土耳其语字符更改为 UTF8 编码字符

JSON Unmarshal 无法按预期使用结构

json - 尝试使用 json 验证 gcloud 时出错

curl - Elasticsearch 不返回单数/复数匹配项

javascript - HTML CSS 开/关按钮或记录器开关?