【问题标题】:Getting INVALID_REQUEST from Google Maps API for valid addresses从 Google Maps API 获取 INVALID_REQUEST 以获取有效地址
【发布时间】:2015-11-30 23:00:50
【问题描述】:

我正在使用 Google Maps API 进行一些测试,但由于某种原因,有一些有效地址无缘无故地返回状态 INVALID_REQUEST。这是我的php代码

    $request_url = "https://maps.googleapis.com/maps/api/geocode/xml?address=".urlencode($address);
    $xml = simplexml_load_file($request_url) or die("url not loading");
    $status = $xml->status;
    return $status;

$地址示例:

    $address = "R. Espírito Santo, Viana, ES, Brasil" // status INVALID_REQUEST 

但如果我尝试直接访问 URL,它会返回状态 OK

https://maps.googleapis.com/maps/api/geocode/xml?address=R.%20Espírito%20Santo,%20Viana,%20ES,%20Brasil

对于某些地址,它返回 OK,但对于其他地址,INVALID_REQUEST 使用完全相同的代码仅更改地址。直接访问 URL 总是返回 OK。

有什么线索吗?

谢谢

【问题讨论】:

    标签: php google-maps query-string


    【解决方案1】:

    这是一个字符编码问题。 utf8_encode() (info) 解决了。

        $address = utf8_encode($address);
    

    【讨论】:

      【解决方案2】:

      使用urlencode() (info)

      $address     = "R. Espírito Santo, Viana, ES, Brasil" // this can't be passed as query string
      $request_url = "https://maps.googleapis.com/maps/api/geocode/xml?address=".urlencode($address); // urlencode() solves this
      $xml         = simplexml_load_file($request_url) or die("url not loading");
      $status      = $xml->status;
      return $status;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-08-21
        • 2016-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多