如何从http服务器下载文件

时间:2011-03-03 07:42:18

标签: http blackberry java-me

我的应用程序需要从http服务器下载文件(.ashx文件)。我为此编写了以下功能。但是执行它需要花费大量时间,而当我打印它的大小超过30,000时。但它只有28 kb。

public byte[] downloadFile(String url){
StreamConnection streamConnection=null;
InputStream inputStream=null;
InputStream ips;
byte[] plyListFiles=null;

try {

    HttpConnection httpConnection=(HttpConnection)Connector.open(url,Connector.READ_WRITE);
    httpConnection.setRequestMethod(HttpConnection.GET);
    int httpStatus=httpConnection.getResponseCode();
    if(httpStatus==HttpConnection.HTTP_OK){

        inputStream = httpConnection.openInputStream();
        ips=inputStream;
        plyListFiles= IOUtilities.streamToBytes(ips);


    }
} catch (IOException e) {           
    System.out.println(e);
}
return plyListFiles;
}

当我尝试返回字符串时,会显示一些垃圾值。 如何从服务器下载文件并将其写入我们的手机。任何人都有想法请帮忙。

1 个答案:

答案 0 :(得分:0)

首先,你的文件大小相同我想30,000byte / 1024 =几乎28kb。

其次,您没有返回字符串,而是返回字节。因此,如果您希望从这些字节中看到人类可读的字符串,那么它似乎就像垃圾一样。

尝试使用

StringBuffer buff = new StringBuffer();
BufferedReader in = new BufferedReader (new InputStreamReader(httpConnecton.getInputStream()));
 while ((str = in.readLine()) != null) {
        buff.append(str);
 }
 return buff.toString();