确定将以编程方式将URL重定向到其他URL

时间:2013-03-13 10:07:43

标签: java redirect http-status-codes

我需要从市场上下载一堆apks。使用Multi-apk工具分析每个文件是否包含广告并重新压缩(这不是问题,所以我不会再进一步​​讨论)

现在,我正在做我将从特定市场下载apk的部分。我获取页面的源代码并获取以.APK

结尾的所有URL

从页面中提取每个URL后,我使用commons io下载它。但是,每当下载完成时,我都注意到它们的大小都相同。这让我觉得它正在下载同一个文件。

后来,我意识到我被重定向到另一个URL。

我想要做的是确定网址是否将我重定向到其他网址。

我尝试获取该网址的响应代码,它给了我200但是当我已经连接时,它会稍后将我重定向到另一个页面。

以下是我用来尝试检查网址响应代码的代码。

boolean urlValidity =true;
try
{
    URLConnection urlConn = new URL(url).openConnection();
    String RC = urlConn.getHeaderField(0);
    System.out.println("RC " + RC);
    if ( (RC == null) || (!(RC.contains("200"))) )
    {

        urlValidity = false;
    }
}
catch(Exception e)
{
    return false;
}
return urlValidity;

我需要这样做,所以我不需要继续下载该URL的APK。 有没有办法以编程方式修复此问题?

1 个答案:

答案 0 :(得分:0)

您应该将setInstanceFollowRedirects设置为false,以确保您不会被重定向。这也将从您所建立的连接中下载非常少的内容。 我最近有一个项目,我必须找到URL为了到达最终URL所做的跳数,并且可以使用LongURL API。