使用Java URLConnection设置FTP主动/被动模式

使用URLConnection类时是否可以设置FTP被动或主动模式? 我找不到任何关于此的文档,但这是一个基本function,很难相信它没有实现。

如果不是,我在标准Java中还有哪些其他选项?

为了让FTP完全成熟,你真的需要回到使用套接字的低级编程。 URLConnection和consorts根本不适合您的需求(不支持进入被动模式)。 幸运的是,Apache Commons已经为Apache Commons Net FTPClient做了很多工作。 要实现您的需求,只需使用FTPClient#enterLocalPassiveMode()FTPClient#enterLocalActiveMode()

今天,我们捕获TCP / IP数据包并确认Android / JAVA / URLConnection仍然使用PORT(活动模式)进行FTP。

如果服务器不支持活动模式或网络不支持活动模式,则URLConnection将失败。