我正在发送 GData 查询以使用 Java GData 包为 Instructables.com 的用户呈现流量图表。但是,有时会抛出此异常:
[Line 1, Column 0] Invalid root element, expected (namespace uri:local name) of (http://www.w3.org/2005 Atom:feed), found (:feed
我能在网上找到的唯一提及此错误的是 here ,但我非常确定我们的 Feed URL 格式正确。例如,这是我们可能发送的 URL:
https://www.google.com/analytics/feeds/data?ids=ga:472899&metrics=ga:uniquePageviews&dimensions=ga:date&start-date=2009-10-12&end-date=2009-11-11&filters=ga:pagePath==/id/Inverted_Bookshelf/,ga:pagePath==/id/Munny-Speakers/,ga:pagePath==/id/Zippo-Trick%253a-The-Twilight-Zone/,ga:pagePath==/id/Firefox-Pranks/,ga:pagePath==/id/Guitar-Hero-LED-Mod/
奇怪的是,同样的查询会在本地运行,但在我们的暂存服务器上会失败,但随后会在生产环境中运行。即使此查询在一个上下文中失败,其他查询在同一上下文中也没有问题。我知道这些查询必须是经过身份验证的 HTTP 请求的一部分。这可能是问题所在吗?在每种情况下,我都使用相同的 Google 帐户(相同的登录名/密码)发送查询。
最佳答案
阅读错误代码告诉您的内容:它告诉您它期待 Atom 命名空间中的 feed
元素,但在没有命名空间的情况下看到 feed
元素。
这不太可能由于授权失败而出现(在这种情况下,Google 至少会发送一个根目录不是 feed
的错误文档);如果返回的 feed
元素缺少默认命名空间的声明,则更有可能出现这种情况。
关于java - GData 错误 : Intermittent "Invalid root element",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1728217/