如何从服务器接收数据?

时间:2011-08-24 05:23:56

标签: android

我正在尝试从我的应用程序中获取服务器中的数据,如MP3文件,视频文件等。应用程序应显示从服务器接收的视频文件列表。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

检查此链接,

https://stackoverflow.com/search?q=how+to+download+mp3+%2Cvideos+from+server+in+android

试试此代码

    url = "your url name+filename.jpg,mp3,etc..."
    FileName = "/sdcard/savefilename" // save in your sdcard


 try{
             java.io.BufferedInputStream in = new java.io.BufferedInputStream(new       java.net.URL(url).openStream());
        java.io.FileOutputStream fos = new java.io.FileOutputStream(FileName);
        java.io.BufferedOutputStream bout = new BufferedOutputStream(fos,1024);
        byte[] data = new byte[1024];
        int x=0;
        while((x=in.read(data,0,1024))>=0){
            bout.write(data,0,x);               
        }
        fos.flush();
        bout.flush();
        fos.close();
        bout.close();
        in.close();
  }
    catch (Exception ex)
    {
     }

并且在您想要使用MediaPlayer之后 并在您的活动中创建媒体播放器的对象 和玩。 mp.reset(); mp.start();

答案 1 :(得分:0)

/** this function will download content from the internet */
    static int writeData(String fileurl, boolean append, String path,
            String filename, Activity mContext) throws CustomException {

        URL myfileurl = null;
        ByteArrayBuffer baf = null;
        HttpURLConnection conn = null;
        String mimeType="";
        final int length;
        try {
            myfileurl = new URL(fileurl);
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
        try {
            conn = (HttpURLConnection) myfileurl
                    .openConnection();
            conn.setDoInput(true);
            conn.connect();
            conn.setConnectTimeout(100000);

            length = conn.getContentLength();
            mimeType=conn.getContentType().toString();
            System.out.println("Extension..."+mimeType);
            if(mimeType.equalsIgnoreCase("application/vnd.adobe.adept+xml") || mimeType.equalsIgnoreCase("text/html; charset=utf-8"))
                return 0;

            if (length > 0) {
                InputStream is = conn.getInputStream();
                BufferedInputStream bis = new BufferedInputStream(is);
                baf = new ByteArrayBuffer(1000);
                int current = 0;
                while ((current = bis.read()) != -1) {
                    try {
                        baf.append((byte) current);

                        mBufferError=false;
                    } catch (Exception e){
                        // TODO: handle exception
                        mBufferError=true;
                        e.printStackTrace();
                        throw new CustomException("@@@ memory problem ", "Buffer Error");
                    }
                }
            }

        } catch (IOException e) {
            mBufferError=true;
            e.printStackTrace();
        }
        try{
        if(conn.getResponseCode()==200 && mBufferError==false)
        {
            path = path + "/" + filename;
            boolean appendData = append;
            FileOutputStream foutstream;

                File file = new File(path);
            boolean exist = false;

            try {
                if (appendData)
                    exist = file.exists();
                else
                    exist = file.createNewFile();
            } catch (IOException e) {
                try {
                    return 1;
                } catch (Exception err) {
                    Log.e("SAX", err.toString());
                }
            }
            if (!appendData && !exist) {
            } else if (appendData && !exist) {

            } else {
                try {
                    foutstream = new FileOutputStream(file, appendData);
                    foutstream.write(baf.toByteArray());
                    foutstream.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
        }catch (Exception e) {
            // TODO: handle exception
            throw new CustomException("@@@ I/O problem ", "I/O Error");
        }
        return 1;
    }

下载完成后,搜索扩展名为(.3gp)的视频文件 希望它有所帮助