如何使用 java 从 FTPS 服务器获取文件?

How to get files from FTPS server with java?

我正在尝试访问我在 ftps 服务器中创建的路径中的文件夹,但它 return 什么都没有,它正在连接但没有 return 任何东西,如果我将服务器配置更改为 ftp 它可以正常工作。我正在使用 FileZilla Server,其配置如上。

SSL/TLS

Flag true 启用 FTP over SSL/TLS 支持 (FTPS) 并允许显式 FTP over TLS 在 SSL/TLS 设置

我的用户配置是:

Flat "Force SSL for user login" 在 FireZilla 服务器的一般用户配置中是正确的。

服务器关于连接的日志正在收到一条消息,我不知道它是否有帮助:

227进入被动模式

列表

需要 521 PROT P

PASV

227进入被动模式

NLST

需要 521 PROT P

退出

我的连接示例 class 上面有所有权限:

public class FTPClientExample2 {

public static void main(String[] args)
{
    String server = "myip";
    int port = 2121;
    String user = "joao";
    String pass = "1234";

    boolean error = false;
    FTPSClient ftp = null;
    try
    {
        ftp = new FTPSClient("SSL");
        ftp.setAuthValue("SSL");
        ftp.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out)));

        int reply;

        ftp.connect(server, port);
        System.out.println("Connected to ftp.wpmikz.com.cn");
        System.out.print(ftp.getReplyString());

        // After connection attempt, you should check the reply code to verify
        // success.
        reply = ftp.getReplyCode();

        if (!FTPReply.isPositiveCompletion(reply))
        {
            ftp.disconnect();
            System.err.println("FTP server refused connection.");
            System.exit(1);
        }
        ftp.login(user, pass);
        // ... // transfer files
        ftp.setBufferSize(1000);
        ftp.enterLocalPassiveMode();
        // ftp.setControlEncoding("GB2312");
        ftp.changeWorkingDirectory("/");
        ftp.changeWorkingDirectory("/ae"); //path where my files are
        ftp.setFileType(FTP.BINARY_FILE_TYPE);
        System.out.println("Remote system is " + ftp.getSystemName());

        String[] tmp = ftp.listNames();  //returns null
        System.out.println(tmp.length);
    }
    catch (IOException ex)
    {
        System.out.println("Oops! Something wrong happened");
        ex.printStackTrace();
    }
    finally
    {
        // logs out and disconnects from server
        try
        {
            if (ftp.isConnected())
            {
                ftp.logout();
                ftp.disconnect();
            }
        }
        catch (IOException ex)
        {
            ex.printStackTrace();
        }
    }
}

}

知道哪里出了问题吗?

谢谢大家!

登录后尝试执行

  ftp.execPBSZ(0);
  ftp.execPROT("P");