【问题标题】:getting exception trying to use google geocoding api尝试使用谷歌地理编码 api 时出现异常
【发布时间】:2014-02-15 10:26:30
【问题描述】:

我试图使用谷歌地理编码 api 将地址转换为经度和纬度。但我得到了这个异常

无法解析远程名称:“maps.googleapis.com” 说明:执行过程中发生未处理的异常 当前的网络请求。请查看堆栈跟踪以获取更多信息 有关错误的信息以及它在代码中的来源。

异常详细信息:System.Net.WebException:远程名称无法 解决:'maps.googleapis.com'

在下面一行

 Address[] addresses = geocoder.Geocode("1600 pennsylvania ave washington dc").ToArray();

我没有得到它是什么请有人帮助我。

【问题讨论】:

  • 那么您查看异常的堆栈跟踪了吗?
  • 检查您的事件日志。问题可能来自防火墙或代理服务器的无效 url(主机名)阻止请求,甚至是主机文件或 DNS 配置错误。根据 Vigneshes 的回答,有时如果您在 web.config 中指定代理,您的问题就会消失。

标签: c# geocoding


【解决方案1】:

这是由于您系统中的代理设置而发生的。请将此代码添加到您的 web.config 文件中,它将起作用。

  <system.net>
    <defaultProxy enabled="true" useDefaultCredentials="true">
    </defaultProxy>
 </system.net>

【讨论】:

    【解决方案2】:

    试试下面的 C# 代码。如果您不调用 Yahoo 和 Bing,为什么不直接调用 Google GeoService 并让您的项目更精简。

        string uri = "https://maps.googleapis.com/maps/api/geocode/json?address=123+Some+Adress,My+City,ST,12345&key=googleKey";
    
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri );
        req.Method = "GET";
        req.Accept = "application/json";
        req.ContentType = "application/json";
    
        HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
        var request = WebRequest.Create(requestUri);
        var response = request.GetResponse();
        var xdoc = response.GetResponseStream();
        String resposne = new StreamReader(xdoc).ReadToEnd();
    

    【讨论】:

      【解决方案3】:

      我也遇到了同样的问题。如果您已连接局域网并受代理服务器保护,则进入谷歌浏览器设置。我们的系统采用谷歌浏览器的默认设置。在 chrome 的设置中,进入代理设置。单击 LAN 设置。单击代理设置复选框,然后单击通过代理服务器获取本地地址。同时在文本框中填写代理服务器的详细信息。提前并在异常字段中输入 localhost。再次运行项目。它会工作。

      【讨论】:

      • 请不要向多个问题发布完全相同的答案(既不是直接副本也不是链接):它要么不适合所有人,要么问题是重复的,应该标记/关闭为这样的。
      • 但这是我自己的答案。我通过这种方式得到了解决方案。有很多问题都有相同的答案,那么我们该怎么办......
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-06
      • 1970-01-01
      • 1970-01-01
      • 2011-08-28
      • 1970-01-01
      • 2011-12-20
      相关资源
      最近更新 更多