php - Google Places Nearby API 使用 CURL PHP 仅返回 6 个结果
问题描述
我正在使用 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();
解决方案
我无法重现这一点,因为您的代码为同一个 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 浏览器发送的标头。
推荐阅读
- javascript - 检查多个对象数组的项
- react-native - 如何在 React Native 中缓存视频
- c# - 了解 ADO.NET 的“连接生命周期”
- java - 无法使用 spring kafka 生产者向 Kafka 发送任何消息 - 超时异常
- sql - Redshift 中的溢出错误
- excel - 宏 Excel:检查单元格是否为空
- javascript - 承诺功能无法识别外部变量
- rust - 为什么 Rust 找不到 wl_display_get_registry?
- python - 如何返回 JSON 请求输入并在另一个函数中使用它?
- python - 有没有更短的方法可以通过列表来实现?