Здравствуйте. Использую в своем приложении библиотеку Commons Net 3.4 от Apache и столкнулся со следующей проблемой. При попытке подключиться к FTP серверу выдает ошибку: "java.io.IOException: Connection is not open". Может кто-нибудь помочь с данной проблемой? Данные от FTP введены 100% правильно.
public static Boolean downloadAndSaveFile(String server, int portNumber, String user, String password, String filename, File localFile) throws IOException {
FTPClient ftp = null;
try {
ftp = new FTPClient();
ftp.connect(server, portNumber);
ftp.login(user, password);
ftp.setFileType(FTP.BINARY_FILE_TYPE);
ftp.enterLocalPassiveMode();
OutputStream outputStream = null;
boolean success = false;
try {
outputStream = new BufferedOutputStream(new FileOutputStream(localFile));
success = ftp.retrieveFile(filename, outputStream);
} finally {
if (outputStream != null) {
outputStream.close();
}
}
return success;
} finally {
if (ftp != null) {
ftp.logout();
ftp.disconnect();
}
}
}
Ответ
Причиной данной ошибки может служить:
отсутствие соответствующего разрешения в манифесте;
выполнение метода в UI-потоке.
Соответственно решается:
добавлением android.permission.INTERNET
запуском метода в бэкграунде
Комментариев нет:
Отправить комментарий