【发布时间】:2011-08-13 21:51:00
【问题描述】:
我在任何地方都找不到文件的简单 FTP 访问示例,并且 FTPClient 类(有几个示例使用)没有出现在 Android 类索引中。我有 http 访问工作,但我如何做一个简单的 FTP 获取?我想要做的就是下载(例如): ftp://tgftp.nws.noaa.gov/data/observations/metar/stations/KABQ.TXT 它不应该需要登录、更改目录等。 只是将该 URL 提供给 http 访问方法似乎不起作用。
这类似于以下问题: unable to read file from ftp in android?
我尝试了一个简单的:
StringBuilder response = new StringBuilder();
URLConnection ftpConn;
try {
URL netUrl = new URL("ftp://tgftp.nws.noaa.gov/data/observations/metar/stations/KABQ.TXT");
ftpConn = netUrl.openConnection();
BufferedInputStream bufRd = new BufferedInputStream(ftpConn.getInputStream());
int temp;
while ((temp = bufRd.read()) != -1) {
response.append(temp);
}
bufRd.close();
} catch (Exception e) {
return "Failure";
}
但它在 getInputStream 上出现异常: 无法连接服务器:无法配置数据端口
此外,必须有一种比逐字节更智能的方式将数据从流缓冲区中提取出来,不是吗?我也找不到。
最后,我需要同时进行 http 和 ftp 访问,有什么理由不对这两种访问类型使用 URLConnection 吗?还是将 HttpConnection 用于 http,将 URLConnection 用于 ftp 更好?
谢谢!
【问题讨论】:
-
您的清单中是否有互联网使用权限?
-
是的,我在那个上花了几个小时,这在几个小时前是一个很好的猜测。 :-) 我确实让 http 工作,但不是 ftp。
-
我还注意到,如果我在模拟器上将那个 URL 输入谷歌,它会显示“网页不可用”并且它在普通浏览器中。如果我直接在浏览器窗口中输入该 URL,它似乎只需要 50 个字符,不会占用全部内容。这些是模拟器中的错误吗?
-
请帮忙!或者,如果 ftp 在 Eclipse 模拟器上不起作用,也请告诉我并提供解决方法的建议。它是否适用于真实硬件?
标签: android ftpwebrequest