【发布时间】:2011-07-07 05:22:16
【问题描述】:
我正在尝试使用 org.apache.commons.net.ftp.FTPClient 通过代理连接到 FTP 服务器。很确定系统属性设置正确如下:
Properties props = System.getProperties();
props.put("ftp.proxySet", "true");
// dummy details
props.put("ftp.proxyHost", "proxy.example.server");
props.put("ftp.proxyPort", "8080");
创建连接会引发 UnknownHostException,我很确定这意味着连接没有通过代理。
如何将用户凭据传递到具有此连接类型的代理。
顺便说一句,我可以使用以下方法通过相同的代理成功创建 URLConnection;有 Apache FTPClient 的等价物吗?
conn = url.openConnection();
String password = "username:password";
String encodedPassword = new String(Base64.encodeBase64(password.getBytes()));
conn.setRequestProperty("Proxy-Authorization", encodedPassword);
【问题讨论】:
-
我从 oracle java docs 查到的,ftp 代理主机名为:
ftp.proxHost。不是ftp.proxyHost。没有y。我不知道为什么,因为我没有 ftp 代理,所以我无法测试它。 java networking and proxies
标签: java proxy ftp-client apache-commons-net