Nominatim API 不会通过 CURL 请求返​​回门牌号,而是在通过浏览器请求时返回

问题描述

我正在使用 OSM Nominatim API 从 lat lng 反向地理编码地址。但是我正面临这个奇怪的问题,当我通过 CURL 请求点击 api 时,它不返回任何门牌号。

function getAddressFromNominatim($lat,$lon){
$client = new Client();
$nominatimUrl = env('NOMINATIM_URL','https://nominatim.openstreetmap.org/reverse?');
$nominatimUrl .= "lat={$lat}&lon={$lon}&format=json&accept-language=en";
$headers['json'] = [];
$headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0';

$request = $client->request('GET',$nominatimUrl,[
        'headers' => $headers
    ]);
$response = collect(json_decode((string) $request->getBody(),true));
if (!isset($response['display_name'])) {
    return 'Unable to geocode';
}
return $response['display_name'];

    }

回复

Postman Response

但是当我在浏览器中点击相同的网址时,它会返回门牌号码

Browser Response

我在 Laravel 5.8 中使用 Guzzle HTTP 来发出 CURL 请求。

参考的提名网址:Click Here

有人可以指导我吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...