这是我需要做的。 我需要从市场上下载一堆apks。 使用Multi-apk工具分析每个文件是否包含广告并重新压缩(这不是问题,所以我不会再进一步讨论)
现在,我正在做我将从特定市场下载apk的部分。 我获取页面的源代码并获取以.APK
结尾的所有URL从页面中提取每个URL后,我使用commons io下载它。 但是,每当下载完成时,我都注意到它们的大小都相同。这让我觉得它正在下载同一个文件。
我尝试使用wget,我发现所有的网址都被重定向到一个网址。
当我通过单击“下载到PC”按钮进入页面并下载同一个文件时,它可以正常工作并下载我想要的文件。
有什么方法可以下载我想要的文件吗?我可以修改代码以获取正确的APK吗?这是网络编程的能力之一吗?
以下是下载APK的代码
private static void downloadSample(String directLink) throws Exception
{
String[] getAPKName = directLink.split("/");
System.out.println(getAPKName[getAPKName.length -1]);
String APKName = getAPKName[getAPKName.length -1];
org.apache.commons.io.FileUtils.copyURLToFile(new URL(directLink), new File("C:\\Users\\Documents\\NetBeansProjects\\JavaApplication21\\APK\\"
+ APKName));
}
答案 0 :(得分:1)
有什么方法可以下载我想要的文件吗?我可以修改代码以获取正确的APK吗?这是网络编程的能力之一吗?
从技术上讲,是的,有一种方法,但我们无法告诉你它是什么。基本上,您已经弄清楚了您的Java请求是什么导致服务器在您从浏览器发出请求时采取不同的行为。使用FireBug(或等效的)查看浏览器请求将是一个良好的开端。检查您正在下载的文件(从Java)以查看它包含的内容也是值得的。它可能是错误消息或通知或其他内容。
但是,您还应该考虑为什么已设置服务器来执行此操作。