通过地理编码 API 的 Web 请求出现错误 407(代理身份验证请求)

Posted

技术标签:

【中文标题】通过地理编码 API 的 Web 请求出现错误 407(代理身份验证请求)【英文标题】:Error 407 (Proxy Authentication Request) on Web Request via Geocoding API 【发布时间】:2021-12-05 17:12:22 【问题描述】:

我正在编写一段代码,它将接收用户输入的地址,并返回纬度/经度值以供以后使用。为此,我使用了地理编码 API。我所拥有的是:

try

    IGeocoder geo = new GoogleGeocoder()  ;
    Address[] addresses = geo.Geocode(address.Text).ToArray();
    foreach (Address adr in addresses)
    
        // just testing it out
        MessageBox.Show(adr.Coordinates.ToString());
    

catch (Exception ex)

    // error treating

address 是一个文本框,用户可以在其中输入地址。但是,当我运行它时,我得到了 407 错误。

我已经阅读了很多问题并尝试了他们的解决方案(例如 this one 或 this one),但都没有奏效。

关于我缺少什么的任何想法?

【问题讨论】:

看起来是代理渗透的问题。没有来自您的机器(您的防火墙)的请求,或者代理没有到达那里(代理的防火墙),或者您的连接信息(地址、端口、凭据)错误。如果你真的添加了 App.config 以及工作凭据、正确的本地地址、它的端口,那么防火墙会告诉你什么? 你在哪里设置网址?您是否与休息客户一起尝试过?你得到了什么? 【参考方案1】:

由于它引发了关于代理的错误,您可以尝试将您的代理详细信息设置为GoogleGeocoder class。

GoogleGeocoder geocoder = new GoogleGeocoder

    Proxy = new WebProxy
    
        Address = new Uri("proxy url"),
        Credentials = new NetworkCredential("username", "password")
    
;

【讨论】:

您好 cdev,感谢您帮助我。但是,它现在抛出另一个错误:“no such host is known”。 那是由于DNS失败,上面的调用会尝试通过代理连接google apis。然后代理或您的网络无法解析主机。我建议你先尝试使用邮递员的谷歌 API。首先找出网络问题。然后相应地调整代码。

以上是关于通过地理编码 API 的 Web 请求出现错误 407(代理身份验证请求)的主要内容,如果未能解决你的问题,请参考以下文章

带有 cURL 的 Google 地理编码 API 请求被拒绝。我有一个与启用计费的项目关联的 API 密钥

这里批量地理编码 API 停止工作 - HTTP 错误 500

我可以从仅通过城市的 Google Geocoding API 获取地理编码信息吗?

Google 地理编码 API 为邮政编码返回 ZERO_RESULTS

如何使用 mockito/powermock 模拟 Google 的地理编码 API 请求?

我可以从 HERE 的反向地理编码 API 调整返回的地址标签吗?