我尝试使用 ftp4j 从 ftp 服务器轮询文件。我的应用程序在 Squid 代理后面运行,因此我使用 HTTPTunnelProxyConnector 连接到代理。但是在尝试连接时,它会抛出以下异常:
java.net.SocketException: Can't connect to SOCKS proxy:Connection refused
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:397)
at java.net.Socket.connect(Socket.java:529)
at it.sauronsoftware.ftp4j.FTPConnector.tcpConnectForCommunicationChannel(FTPConnector.java:208)
at it.sauronsoftware.ftp4j.connectors.HTTPTunnelConnector.httpConnect(HTTPTunnelConnector.java:111)
at it.sauronsoftware.ftp4j.connectors.HTTPTunnelConnector.connectForCommunicationChannel(HTTPTunnelConnector.java:195)
at it.sauronsoftware.ftp4j.FTPClient.connect(FTPClient.java:1036)
at it.sauronsoftware.ftp4j.FTPClient.connect(FTPClient.java:1003)
这是我用于连接的代码片段:
FTPClient client = new FTPClient();
client.setType(FTPClient.TYPE_BINARY);
client.setPassive(true);
HTTPTunnelConnector conn = new HTTPTunnelConnector("XX.XX.XX.XX", 80);
client.setConnector(conn);
try {
client.connect("some.ftp.server.com"); // here I get the Exception
....
看来无论我使用哪种Connector,它总是使用SocksSocketImpl,它失败是因为没有Socks Proxy。我已经尝试在 Socket 类中手动设置代理,但获取java.lang.IllegalArgumentException: Invalid Proxy
代理类型 HTTP。
我可以用wget和设置的环境变量ftp_proxy连接服务器,所以我的问题似乎和代理配置无关,但我不是网络破解,所以不太确定……
我对安装的代理类型没有影响,所以我不能简单地使用另一个。任何提示任何人请?