3

我有应用程序商店,应用程序有它们的 url。我想从这些网址下载 apk 到我的粗略服务器。虽然下面的代码(我的第一个解决方案)成功创建了 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");

谁能帮我?

4

2 回答 2

0

.apk files are Android application files, and they are expected to start with PK, because they are actually zip archives!

They're not meant to be unzipped, although you can do it to see some of the application resources (but there are better ways for reverse engineering .apk files such as Apktool, if that's what you're looking for).

于 2015-05-08T01:07:15.247 回答
0

根据jaggery documentations, file.write 正在将对象的字符串表示形式写入文件。所以这就是为什么你得到一个无法安装的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 目录中,除非您指定了文件的相对或绝对路径。

于 2016-05-02T06:52:28.387 回答