【发布时间】:2016-02-15 15:22:34
【问题描述】:
我开始使用雅虎的免费天气 API 来获取我需要的天气数据,但似乎每次我请求城市天气数据时,我都有可能获得更新数据或返回 1 到 8 天的旧数据。
这是我提出请求的简单 URL: Click here to see a sample request
YQL 查询很简单,它请求纽约市的天气数据:
select * from weather.forecast where woeid in (select woeid from geo.places(1) where text="New York")
但每次我刷新那个 URL 时,我可能会得到完全不同的结果。例如,我现在确实刷新了几次(现在是 2015 年 11 月 13 日,格林威治标准时间 22:45 左右),这是我在query.results.channel.item.condition.date 部分得到的一些结果:
"date":"Fri, 13 Nov 2015 4:49 pm EST"
"date":"Thu, 12 Nov 2015 2:13 am EST"
"date":"Wed, 11 Nov 2015 1:49 am EST"
"date":"Fri, 13 Nov 2015 1:49 am EST"
这很复杂,当我每次发出请求时 API 返回随机日期的天气数据时,我应该如何获取这样的当前天气数据?
我在这里做错了什么或遗漏了什么吗?
注意事项:
- 我尝试过的许多不同城市的这种行为都是相同的。
-
在 YQL 控制台中使用相同的查询似乎没有同样的问题。 (YQL Console)(其实也发现了同样的问题) - 同样的事情也发生在这个 XML/RSS 请求方法上:http://weather.yahooapis.com/forecastrss?w=2459115
更新:
- 我确实遇到过一个案例,它返回了 8 天前的数据!
- 使用 YQL 的 SORT 函数并不能解决问题,因为排序是在选择请求的记录后应用的。
今天(2015 年 11 月 25 日),我已经尝试了 20 多次刷新,似乎返回的数据总是正确的,看来问题已经解决了。
2015 年 11 月 26 日,雅虎宣布问题已解决:感谢您的反馈。这个问题已被解决。请再次查看该网站。如果您仍然遇到此问题,请在此论坛上发布新想法。
【问题讨论】:
-
快一个月了,Yahoo 没有任何动作。我下面的解决方案似乎效果很好,我已经测试了 20 多天。该代码是一个完整的 JavaScript 实现。我同意,反复调用它效率不高,但这是我们所拥有的最好的。大多数时候它会在 5 次尝试内返回。偶尔会超过 15 次尝试。
-
@Vijay Jagdale:此问题已由 Yahoo 修复,请注意我在 11 月 26 日添加的更新:2015 年 11 月 26 日 Yahoo 宣布该问题已修复:感谢您的回馈。这个问题已被解决。请再次查看该网站。如果您仍然遇到此问题,请在此论坛上发布新想法。
-
PS:我投了两次票来结束这个问题,但似乎票数不够。我相信这应该在没有接受的答案的情况下关闭,因为问题是雅虎方面的一个错误,已经修复,而不是编程错误。
-
实际上它只是在几天前才开始表现得更好。但它并不完全固定。如果你在下面运行我的代码,它会告诉你需要多少次往返才能获得正确的数据,而且它似乎仍然有一半的时间返回过时的数据,并且需要第二次。
标签: yql yahoo-api yahoo-weather-api