在HTTP代理之后,是否有方法将文件上载到FTP服务器?
在使用.Net Webclient的HTTP之后,似乎不支持上传文件。(http://msdn.microsoft.com/en-us/library/system.net.ftpwebrequest.proxy.aspx)。
如果没有解决办法呢?如果没有,您知道我可以使用一个好的免费FTP库吗?
编辑:不幸的是,我没有任何要连接的FTP代理。
发布于 2008-10-02 11:29:13
在活动FTP模式下,服务器启动到客户端的数据连接。如果客户端在HTTP代理后面,这显然是行不通的。在被动FTP模式下,启动初始连接和数据连接的是客户端。由于HTTP代理可以隧道任意传出TCP连接(使用CONNECT方法),所以应该可以通过HTTP代理以被动模式访问FTP服务器。
FtpWebRequest似乎支持被动模式。但是,我不明白为什么支持文件下载和目录列表,而同样使用相同数据连接的文件上传则不支持。
您是否确认过,配置为被动模式的FtpWebRequest不能通过HTTP工作,通过哪个目录清单/文件下载可以正常工作?
发布于 2008-10-02 11:31:57
大多数FTP代理都在连接上执行它们的操作,因此如果没有代理,则执行以下操作:
使用FTP代理,您可以:
从那里就可以解决了。我正在通过一个squid代理来使用这个权限(试图调试一些东西)。
..。但是由于你没有FTP代理..。
你有袜子代理吗?这可能有效,但我不知道.NET是否能做到。否则,老实说,我认为你被困住了!与HTTP相比,FTP是一种“奇数”协议,因为它有一个控制通道(端口21)和一个数据通道(或在一个随机端口上有多个通道),所以通过代理是.。至少可以说是有趣的!
发布于 2009-05-28 07:43:00
我们的Rebex FTP/SSL可以使用HTTP。这不是免费的,尽管.
// initialize FTP client
Ftp client = new Ftp();
// setup proxy details
client.Proxy.ProxyType = FtpProxyType.HttpConnect;
client.Proxy.Host = proxyHostname;
client.Proxy.Port = proxyPort;
// add proxy username and password when needed
client.Proxy.UserName = proxyUsername;
client.Proxy.Password = proxyPassword;
// connect, login
client.Connect(hostname, port);
client.Login(username, password);
// do some work
// ...
// disconnect
client.Disconnect();https://stackoverflow.com/questions/161200
复制相似问题