Google地理编码API无法使用新密钥?

时间:2016-06-24 14:58:17

标签: c# google-maps google-maps-api-3 geocoding

我正在使用Google地理位置(地理定位,地点)API的网站上工作。几天前我添加了这些api。它工作正常。但后来我发现它现在不再起作用了。总是有例外。经过一番检查,我发现了这个:

http://googlegeodevelopers.blogspot.com.au/2016/06/building-for-scale-updates-to-google.html

这是因为他们不再支持无密钥访问(任何不包含API密钥的请求)。

所以,我按照指令,启用api,创建密钥,将密钥添加到调用URL,等待大约1天,但它仍然无法正常工作。以下是代码之一:

public static MapLocation GoogleGeoCode(string address)
{
    MapLocation ret = null;

    try
    {
        var requestUri = string.Format("http://maps.googleapis.com/maps/api/geocode/xml?address={0}&sensor=false&key=***", Uri.EscapeDataString(address));

        var request = WebRequest.Create(requestUri);
        var response = request.GetResponse();
        var xdoc = XDocument.Load(response.GetResponseStream());

        var result = xdoc.Element("GeocodeResponse").Element("result");
        var locationElement = result.Element("geometry").Element("location");
        var lat = locationElement.Element("lat");
        var lng = locationElement.Element("lng");

        ret = new MapLocation
        {
            Lat = double.Parse(lat.Value)
            ,
            Lng = double.Parse(lng.Value)
        };
    }
    catch (Exception ex)
    {
        Debug.WriteLine(ex.ToString());
        ret = null;
    }

    return ret;
}

我在DEV机器上尝试了服务器密钥和浏览器密钥。在浏览器密钥中,我没有设置任何引用。在服务器密钥中,我没有在“接受来自这些服务器IP地址的请求”选项中填写任何内容。

任何人都知道我做错了什么?或者,任何人都可以使用新密钥来调用API?

由于

1 个答案:

答案 0 :(得分:0)

事实证明它现在需要https。一旦更改为https,它将再次使用服务器密钥。