获取 public FTP 服务器的凭据

Get credentials of public FTP server

我使用 FTPClient 从 FTP 服务器自动下载文件。我用模拟 FTP 服务器对其进行了测试,一切正常。

现在,我的问题是,当我使用要从中获取文件的服务器地址时,出现以下错误:

java.io.IOException: Unable to determine system type - response: 530 Please login with USER and PASS.
    at org.apache.commons.net.ftp.FTPClient.getSystemType(FTPClient.java:2835)
    at org.apache.commons.net.ftp.FTPClient.createParser(FTPClient.java:3401)
    at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:3370)
    at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:3048)

无需密码即可通过网络浏览器访问服务器。为什么我需要一个?我如何获得一个?

登录 FTP 服务器时,您几乎总是需要 username/password。一些 public FTP 服务器对任何 username/password 或类似 anonymous 的用户名和密码都满意。 Web 浏览器会自动执行此操作,因此它们似乎不使用任何凭据。对于您的代码,您需要明确指定此类凭据。