【发布时间】:2011-05-12 15:27:40
【问题描述】:
在路透社的 RSS 网络服务中,从某些国家/地区加载 RSS 提要会在 UI 和背景上加载 RSS 提要时引发 java.net.ProtocolException: Too many redirects。 (特别是在两个国家/地区的情况下:INDIA 和 USA)。
我该如何解决这个问题?有没有人成功解决了这个问题。
提前致谢。
【问题讨论】:
-
您能否提供一个失败的 RSS URL 示例?此错误通常是由循环重定向
A->B->C->A引起的,但由于它仅适用于某些国家/地区,因此您可能只是获得了足够的重定向来达到内部限制。您可能能够遵循重定向的路径并从更下游的 URL 开始... -
您是否尝试过使用 HttpClient 类?这个错误感觉可能来自
HttpUrlConnection。 -
@CommonsWare 我使用工厂方法来解析 RSS 提要的 xml,这里是它的代码
URL url = new URL(urlString); InputSource inputSource = new InputSource(url.openStream());这个代码进一步用于 Document(org.w3c.Document)解析。在这种情况下,您提出什么替代方案? -
您可能会考虑切换到 HttpClient,因为它内置于 Android 中,并且是 Google 推荐的 HTTP 请求选择。我认为您可以通过多种方式对其处理重定向的方式进行更细粒度的控制,尽管我尚未遇到您的具体问题,因此不知道它是否对您的情况有所帮助。
-
@CommonsWare:谢谢,您的建议只需对代码进行一点调整即可。我在我的集中式方法中应用了这种调整,它就像一个魅力。