我正在使用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?
由于
答案 0 :(得分:0)
事实证明它现在需要https。一旦更改为https,它将再次使用服务器密钥。