无法';t Google Places API和PHP/cURL连接到主机错误


Couldn't Connect To Host Error with Google Places API and PHP/cURL

我正在尝试使用PHP和cURL从Google Places API获取数据,但cURL给了我错误"无法连接到主机"。如果我在浏览器中粘贴Google Places请求的URL,它可以正常工作。file_get_contents也不起作用。这是我的代码:

$ch = curl_init();
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_VERBOSE, 1);
    //curl_setopt($ch, CURLOPT_POST, 1);
    //curl_setopt($ch, CURLOPT_POSTFIELDS, $fieldString);
    $result = curl_exec ($ch);
    if (curl_errno($ch)) {
            return curl_error($ch);
    } else {
    curl_close($ch);
    }
    return $result;

我请求的URL是https://maps.googleapis.com/maps/api/place/search/json?key=xxx&位置=27.9167666641249062,-82.08984375&半径=5000&传感器=真&types=酒吧%7夜总会俱乐部。出于安全目的,我删除了API密钥。

我真的很喜欢尽可能使用file_get_contents(),它非常简单优雅。

通常我做

<?php
$json = (array) json_decode(file_get_contents("https://maps.googleapis.com/maps/api/place/search/json?key=xxx&location=27.916766641249062,-82.08984375&radius=50000&sensor=true&types=bar%7Cnight_club."));
var_dump($json);
?>

那么你应该看到这样一个数组:

array(3) {
  ["html_attributions"]=>
  array(0) {
  }
  ["results"]=>
  array(0) {
  }
  ["status"]=>
  string(14) "REQUEST_DENIED"
}

显然,我没有一个正确的API密钥:)希望它会有用。