从服务器下载android上的doc文件

时间:2011-04-13 06:42:08

标签: java android sockets

嗨,我在服务器上有一个word文档,我想从android.i下载它使用以下代码

               URL url = new URL(aurl[0]);
               URLConnection conexion =  url.openConnection();
               conexion.setDoOutput(true);
               conexion.setConnectTimeout(60000);

               conexion.connect();

               int lenghtOfFile = conexion.getContentLength();
               Log.d("ANDRO_ASYNC", "Lenght of file: " + lenghtOfFile);

               InputStream input = new BufferedInputStream(conexion.getInputStream());
               OutputStream output = new FileOutputStream(Environment.getExternalStorageDirectory() + 
                        "/abcd.doc");

                byte data[] = new byte[1024];

                long total = 0;

                while ((count = input.read(data)) != -1) {
                    total += count;
                    publishProgress(""+(int)((total*100)/lenghtOfFile));
                    output.write(data, 0, count);
                }

                output.flush();
                output.close();
                input.close();`

当我使用示例flickr链接(http://farm1.static.flickr.com/114/298125983_0e4bf66782_b.jpg)尝试此代码时它可以工作,但是当我尝试我的服务器URL时它没有连接。文件从浏览器下载了。也可以sombody告诉我有什么区别两个方法之间openConnection()和connect()?

更新:

它也适用于我们的localhost,但不适用于服务器。在logcat中,我看到,请求时间失败:不支持地址族。需要为Doc文件设置什么?

2 个答案:

答案 0 :(得分:0)

URL.openConnection();准备连接是连接是连接的开始我想对不起,如果我错了。

JAVADOC说这些

connect()打开与资源的连接。初始连接关闭后,此方法不会重新连接到资源。

URL.openConnection()打开与此URL指定的远程资源的连接。此连接允许双向数据传输。

希望它有所帮助

答案 1 :(得分:0)

您可能需要为word文档设置内容类型:

Response.ContentType = "application/ms-word"; 

但根据版本的不同,会有不同的变化。