【问题标题】:How to detect a redirected URL?如何检测重定向的 URL?
【发布时间】:2012-03-08 13:18:36
【问题描述】:

我正在开发一个应用程序,该应用程序从 RSS 提要中获取 URL 并在视频播放器中打开它们。如果 URL 直接指向 mp4/whatever 文件,它可以工作,但如果我有一个重定向的 URL(例如 This one 重定向 here),我的播放器会崩溃并失败。

有什么方法可以检测它是否重定向,以及重定向到哪个 URL?

提前致谢:)

【问题讨论】:

  • 您应该能够看到/接收 301 或 302 重定向响应代码

标签: android http


【解决方案1】:

对于重定向的 url 你可以试试这个

try {
    HttpResponse response = client.execute(getRequest);
    final int statusCode = response.getStatusLine().getStatusCode();
    if(statusCode == HttpStatus.SC_MOVED_PERMANENTLY || statusCode == HttpStatus.SC_MOVED_TEMPORARILY){
        String location = response.getHeaders("Location")[0].toString();
        String redirecturl = location.replace("Location: ", "");
    }
}

【讨论】:

  • 有没有办法不下载整个文件?我大概需要 30 秒 :(
  • 我通过将数据存储在设备上解决了我的速度问题(在某种程度上),因此我将其标记为答案。我仍然很好奇是否有办法加快速度?谢谢!
  • @nickbadal 您应该只下载此处描述的标题,这将避免下载数据本身:stackoverflow.com/questions/8852392/…
  • 这个有帮助吗? stackoverflow.com/a/5270162/609782 这里他们使用 openConnection() 和 connectino.getResponseCode()。我不确定 openConnection 是否下载整个文件。
【解决方案2】:

我用我的firefox10为你做了一个测试:
我在浏览器中输入了你的非重定向url,它很快就会显示下载页面,但是对于重定向的url,我还需要等待一段时间才能看到下载页面(超过10s)。所以我猜访问重定向的 url 比非重定向的慢得多。

【讨论】:

    猜你喜欢
    • 2012-10-25
    • 2017-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    • 2015-03-04
    相关资源
    最近更新 更多