我有应用商店和应用程序有他们的网址。我想从这些网址下载apks到我的jaggery服务器。虽然下面的代码(我的第一个解决方案)成功创建了myApp.apk,但它无法正常工作。
首先,我尝试使用以下代码,
var url = "http://img.xxx.com/006/someApp.apk";
var data = get(url, {});
var file = new File("myApp.apk");
file.open("w");
file.write(data.data);
file.close();
当我打印data.data值时,它看起来像
<小时/> 我也试过了,
var file = new File("http://img.xxx.com/006/someApp.apk");
file.saveAs("myApp.txt");
任何人都可以帮助我吗?
答案 0 :(得分:0)
.apk
个文件是Android应用程序文件,它们应该以{{1}}开头,因为它们实际上是zip存档!
它们并不是要解压缩,虽然您可以这样做以查看一些应用程序资源(但是有更好的方法可以对PK
文件进行逆向工程,如果这是Apktool你正在寻找)。
答案 1 :(得分:0)
根据jaggery documentations,file.write正在将对象的String表示写入文件。这就是为什么你得到一个无法安装的apk文件的原因。
然而,你可以使用apache commons-io java库中的copyURLToFile使其工作,因为jaggery支持java本身,并且所有WSO2产品在其类路径中都有apache commons-io库。
<%
var JFileUtils = Packages.org.apache.commons.io.FileUtils;
var JUrl = Packages.java.net.URL;
var JFile = Packages.java.io.File;
var url = new JUrl("http://img.xxx.com/006/someApp.apk");
JFileUtils.copyURLToFile(url, new JFile("myApp.apk"));
print("done");
%>
默认情况下,您的文件将存储在$ CARBON_HOME目录中,除非您指定了该文件的相对路径或绝对路径。