从服务器获取文件列表,并从该列表中获取呼叫下载功能以下载内容

时间:2013-05-02 02:02:02

标签: java android performance apache android-intent

我有一个网络服务器,用于存储http://user.mysite.com/content的文件 现在我想在我的Android应用程序中实现的是下载用户可以在此服务器上传的每个文件,我已经在android中创建了可以下载文件并将其存储到sdcard中的函数,如下所示:

public void doDownload(){
    try {
        int count;
        URL url = new URL("http://user.mysite.com/content");
        URLConnection connection = url.openConnection();
        connection.connect();
        int lengthOfFile = connection.getContentLength();
        long total = 0;
        InputStream input = new BufferedInputStream(url.openStream());
        OutputStream output = new FileOutputStream(f);
        byte data[] = new byte[1024];
        while ((count = input.read(data)) != -1) {
            total += count;
            publishProgress((int)(total/1024),lengthOfFile/1024);
            output.write(data, 0, count);
        }
        output.flush();
        output.close();
        input.close();
    }
    catch (Exception e) {
         Log.e("Download Error: ", e.toString());
    }
}

如何检索服务器上的文件列表和这些文件的URL +文件名称,并使用循环将其中的每一个下载到应用程序上?

要获取文件列表,我有一些事情列出这个:

public List clientServerFileList(){
    URL url;
    List serverDir = null;

    try {
        url = new URL("http://user.mysite.com/content/");           
        ApacheURLLister lister = new ApacheURLLister();         
        serverDir = lister.listAll(url);
    } 
    catch (Exception e) {
        e.printStackTrace();
        Log.e("ERROR ON GETTING FILE","Error is " +e);
    }
    System.out.println(serverDir);
    return serverDir;   
} 

我的服务器是:Apache / 2.2.24(Unix)mod_ssl / 2.2.24 OpenSSL / 1.0.0-fips mod_auth_passthrough / 2.1 mod_bwlimited / 1.4 FrontPage / 5.0.2.2635服务器at user.mysite.com端口80

1 个答案:

答案 0 :(得分:0)

  1. 向您的服务器发送POST或GET请求。当您的服务器重新接收此请求时,请将JSON或XML响应给客户端。
  2. 解析服务器响应您的XML或JSON,获取文件名和...,您可以将文件下载到文件列表中。