问题描述
|
嗨,我在服务器上有一个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,count);
}
output.flush();
output.close();
input.close();`
当我使用示例flickr链接(http://farm1.static.flickr.com/114/298125983_0e4bf66782_b.jpg)尝试此代码时,它可以工作,但是当我尝试服务器URL时,它无法连接。尽管该文件是从浏览器下载的。还可以让我告诉我两个方法openConnection()和connect()有什么区别?
更新:
它也可以在我们的本地主机上正常运行,但不能在服务器上运行。在logcat中,我看到请求时间失败:不支持地址族。需要为Doc文件设置一些内容吗?
解决方法
URL.openConnection();准备建立连接Connect是连接的开始,如果我错了,我想对不起。
JAVADOC说这些
connect()打开与资源的连接。初始连接关闭后,该方法将不会重新连接到资源。
URL.openConnection()打开与此URL指定的远程资源的连接。此连接允许双向数据传输。
希望能有所帮助
,您可能需要设置Word文档的内容类型:
Response.ContentType = \"application/ms-word\";
但是根据版本会有变化。