I'm stuck in connecting to FTP over TLS/SSL (FTPS) server. I am using SimpleFTP library through am able to connect FTP server without SSL but could not connect FTPS.
It is giving me this error at line 2 (ftp.connect),
SimpleFTP received an unknown response when connecting to the FTP server:
220———- Welcome to Pure-FTPd [privsep] [TLS] ———-
and am using below code
SimpleFTP ftp = new SimpleFTP();
// Connect to an FTP server on port 21.
ftp.connect("xxx.xxx.xxx.xxx", 21, "username", "pwd");
//getting error at (ftp.connect) above line
// Set binary mode.
ftp.bin();
// Change to a new working directory on the FTP server.
ftp.cwd("web");
ftp.disconnect();
Best Answer
The
SimpleFTP
class/library does not support TLS/SSL at all.Use the
FTPSClient
class from the Apache Commons Net library instead.See the official example for the
FTPClient
class and just substitute theFTPClient
with theFTPSClient
.The
FTPSClient
class defaults to an explicit TLS/SSL (recommended). In a rare case you need an implicit TLS/SSL, usenew FTPSClient(true)
.