我尝试使用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
....
似乎无论我使用哪种连接器,它总是使用SocksSocketImpl,因为没有Socks Proxy而失败。
我已经尝试在Socket类中手动设置代理,但是为代理类型HTTP获取java.lang.IllegalArgumentException: Invalid Proxy
。
我可以使用wget和环境变量ftp_proxy设置连接到服务器,所以我的问题似乎与代理配置无关,但我没有网络破解,所以我不太确定...
我对安装的代理类型没有影响,所以我不能简单地使用另一个代理。 有人提出任何暗示吗?