FTPSClient解决无法获取文件问题(listFiles为空) |
您所在的位置:网站首页 › pkgj057无法获取列表 › FTPSClient解决无法获取文件问题(listFiles为空) |
前言
最近需要去第三方拉取数据报告,某个邮件的第三方采用的是ftp存取csv文件,故项目中需要使用ftp,但遇到了一些坑,特此记录一下 环境 commons-net commons-net 3.6 问题 无法正确连接问题最开始,使用如下获取连接 FTPClient ftpClient = new FTPSClient(); // 连接FTP服务器 ftpClient.connect(ftpHost, ftpPort); // 登陆FTP服务器 ftpClient.login(ftpUserName, ftpPassword); ftpClient.type(FTP.BINARY_FILE_TYPE); if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) { logger.error("未连接到FTP,用户名或密码错误。"); ftpClient.disconnect(); } else { logger.info("FTP连接成功。"); }但每次到了 FTPReply.isPositiveCompletion(ftpClient.getReplyCode()) 这一步时,总是连接失败。后来才观察到,我需要连接的是一个ftps服务器, 故以上代码需要更改为如下: FTPSClient ftpClient = new FTPSClient(); // 连接FTP服务器 ftpClient.connect(ftpHost, ftpPort); // 登陆FTP服务器 ftpClient.login(ftpUserName, ftpPassword); ftpClient.type(FTP.BINARY_FILE_TYPE); if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) { logger.error("未连接到FTP,用户名或密码错误。"); ftpClient.disconnect(); } else { logger.info("FTP连接成功。"); }FTP/FTPS/SFTP区别 无法正确获取文件问题解决了上述问题后,终于能够正常连接,但在获取文件的时候,每次都是获取的null,然后试探性的调用了一下ftpClient.listFiles()结果是个空数组 问题完美解决,原因暂时没去深究。希望有大佬来解答一下。 有遇到同样问题的小伙伴可以使用试试看 代码完整获取ftpsClient的方法 /** * 获取FTPClient对象 * @param ftpHost FTP主机服务器 * @param ftpPassword FTP 登录密码 * @param ftpUserName FTP登录用户名 * @param ftpPort FTP端口 默认为21 * @return */ public static FTPSClient getFTPClient(String ftpHost, String ftpUserName, String ftpPassword, int ftpPort) { try { FTPSClient ftpClient = new FTPSClient(); // 连接FTP服务器 ftpClient.connect(ftpHost, ftpPort); ftpClient.enterLocalPassiveMode(); // 登陆FTP服务器 ftpClient.login(ftpUserName, ftpPassword); ftpClient.execPBSZ(0); ftpClient.execPROT("P"); ftpClient.type(FTP.BINARY_FILE_TYPE); if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) { System.err.println("未连接到FTP,用户名或密码错误。"); ftpClient.disconnect(); } else { logger.info("FTP连接成功。"); } return ftpClient; } catch (SocketException e) { System.out.println("FTP的IP地址可能错误,请正确配置。"); } catch (IOException e) { System.err.println("FTP的端口错误,请正确配置。"); } return null; } |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |