Google Maps PHP CURL问题“您的客户发出了格式错误或非法的请求.我们知道的就这些.”

我有一个函数,它使用CURL和Google Maps API返回地址的坐标.

代码如下:

function get_coordinates($address_string) {

    $address = urlencode($address_string);
    $url = "https://maps.googleapis.com/maps/api/geocode/json?address=" . $address . "&key=" . $api_key;

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_PROXYPORT, 3128);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    $response = curl_exec($ch);
    curl_close($ch);
    $response_a = json_decode($response);
    $status = $response_a->status;

    return $response;

}

代码适用于我和我使用它的99%的Web服务器 – 但对于大约1%的服务器,Google返回错误消息:

Your client has issued a malformed or illegal request. That’s all we kNow.

我已经检查过,Google Api密钥是正确的,启用了PHP CURL,PHP版本与正在处理的PHP版本相匹配.

任何人都可以想到可能导致谷歌返回此消息的任何其他事情吗?

解决方法:

因为你的$address变量具有空格的地址,所以使用str_replace并用符号替换空格.

它会工作,我面临同样的问题并以这种方式修复.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...