嗨,我在服务器上有一个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文件设置什么?
答案 0 :(得分:0)
URL.openConnection();准备连接是连接是连接的开始我想对不起,如果我错了。
JAVADOC说这些
connect()打开与资源的连接。初始连接关闭后,此方法不会重新连接到资源。
URL.openConnection()打开与此URL指定的远程资源的连接。此连接允许双向数据传输。
希望它有所帮助
答案 1 :(得分:0)
您可能需要为word文档设置内容类型:
Response.ContentType = "application/ms-word";
但根据版本的不同,会有不同的变化。