FTP 无代理连接

FTP connection without proxy

我有一个系统,我们通过 FTP 通过代理传输文件。 现在我需要进行更改以使用或不使用代理发送文件。

我尝试只创建一个 FTPClient 连接,没有主机和端口值,也没有用户 ID 和密码。喜欢 client = new FtpClient();

仅此一项就可以在没有代理的情况下发送文件吗?

我阅读了有关 Proxy.Type.DIRECT 的内容,但不了解我是否应该申请我的要求的用法。

从您的代码看来,您使用的是 FTP 代理(不是普通代理)。

client = new FtpClient(proxy, Integer.parseInt(port));  
client.login(username+"@"+host, password);

如果您想直接连接,请连接到 host,而不是 proxy。我还假设目标主机的实际用户名只是一个 username。 FTP 代理使用 username@host 格式的用户名来告诉它应该将连接转发到哪个主机。

client = new FtpClient(host, Integer.parseInt(port));  
client.login(username, password);

不确定端口。如果您的 FTP 代理使用非标准端口,您可能不应该使用 port,而是连接到标准 FTP 端口 21.