gpt4 book ai didi

c# - 谷歌天气 API 403 错误

转载 作者:数据小太阳 更新时间:2023-10-29 01:43:05 34 4
gpt4 key购买 nike

<分区>

我决定从 Google 的 Weather API 中提取信息 - 我在下面使用的代码工作正常。

            XmlDocument widge = new XmlDocument();
widge.Load("https://www.google.com/ig/api?weather=Brisbane/dET7zIp38kGFSFJeOpWUZS3-");
var weathlist = widge.GetElementsByTagName("current_conditions");
foreach (XmlNode node in weathlist)
{

City.Text = ("Brisbane");
CurCond.Text = (node.SelectSingleNode("condition").Attributes["data"].Value);
Wimage.ImageUrl = ("http://www.google.com/" + node.SelectSingleNode("icon").Attributes["data"].Value);
Temp.Text = (node.SelectSingleNode("temp_c").Attributes["data"].Value + "°C");
}
}

正如我所说,我能够从 XML 文件中提取所需的数据并显示它,但是如果刷新页面或当前 session 仍处于事件状态,我会收到以下错误:

WebException was unhandled by user code - The remote server returned an error: 403 Forbidden Exception.

我想知道这是否与对特定 XML 文件的访问施加了某种访问限制有关?

进一步研究和采纳建议

如下所述,这绝不是最佳实践,但我已经包含了我现在用于异常的捕获。我在 Page_Load 上运行这段代码,所以我只回发到页面。从那以后我没有注意到任何问题。在性能方面,我并不过分担心——我没有注意到加载时间有任何增加,而且这个解决方案是临时的,因为这都是为了测试目的。我仍在使用 Yahoo 的 Weather API。

        try
{
XmlDocument widge = new XmlDocument();
widge.Load("https://www.google.com/ig/api?weather=Brisbane/dET7zIp38kGFSFJeOpWUZS3-");
var list2 = widge.GetElementsByTagName("current_conditions");
foreach (XmlNode node in list2)
{

City.Text = ("Brisbane");
CurCond.Text = (node.SelectSingleNode("condition").Attributes["data"].Value);
Wimage.ImageUrl = ("http://www.google.com/" + node.SelectSingleNode("icon").Attributes["data"].Value);
Temp.Text = (node.SelectSingleNode("temp_c").Attributes["data"].Value + "°C");

}
}
catch (WebException exp)
{
if (exp.Status == WebExceptionStatus.ProtocolError &&
exp.Response != null)
{
var webres = (HttpWebResponse)exp.Response;
if (webres.StatusCode == HttpStatusCode.Forbidden)
{
Response.Redirect(ithwidgedev.aspx);
}

}
}

说明 API 错误处理的 Google 文章

Google API Handle Errors

感谢:

https://stackoverflow.com/a/12011819/1302173 (捕获 403 并召回)

https://stackoverflow.com/a/11883388/1302173 (错误处理和一般 Google API 信息)

https://stackoverflow.com/a/12000806/1302173 (响应处理/json 缓存 - future 计划)

备选

我最近发现了这个很棒的开源替代品

OpenWeatherMap - Free weather data and forecast API

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com