【问题标题】:Google Places Nearby API returns only 6 results with CURL PHPGoogle Places Nearby API 使用 CURL PHP 仅返回 6 个结果
【发布时间】:2020-05-08 22:02:17
【问题描述】:

我正在使用 google Places API,当我在 chrome 浏览器(在 Mac 上)中请求提供的 URL 时,它返回的结果超过 20 个。

但是当我在 PHP curl 代码中请求相同的 URL 时,它只返回 6 个结果。

无法让它工作。请帮忙。

            $ch = curl_init();
            $url = 'https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=31.4814662,74.411793&radius=20000&keyword='.urlencode('ac technician').'&key=API_KEY';
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_HEADER, 0);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
            curl_setopt($ch, CURLOPT_VERBOSE, 1);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
            $response = curl_exec($ch);
            echo "#####".$response;            exit();

【问题讨论】:

  • 这对您有帮助吗? stackoverflow.com/questions/20785537/…
  • 不,它没有。而且我不了解整体 API 行为。因为如果来自浏览器的简单请求有效,那么 CURL 请求也应该有效。有示例代码吗?

标签: php curl cloud google-places-api


【解决方案1】:

我无法重现这一点,因为您的代码为同一个 api 调用返回了 15 个结果。我读了一下,似乎在多次调用后它只返回 5 个结果。

但是,如果您说在浏览器中获得的结果比在 curl 调用中更多,我会模仿浏览器发送的以 User-Agent 开头的标头。检查添加是否适合您:

$headers = array();
$headers[] = 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

此标头正在复制可以由 Firefox 浏览器发送的标头。

【讨论】:

    猜你喜欢
    • 2014-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    相关资源
    最近更新 更多