【问题标题】:FTP through FTP proxy通过 FTP 代理的 FTP
【发布时间】:2012-02-19 10:57:22
【问题描述】:

我正在尝试通过 FTP 代理(在我这边)使用 FTP 下载文件。 这是我试图在 C# 中实现的脚本:

On Commandline:
ftp -i -s:get.ini CORPORATE_PROXY.com  
-----------get.ini------------
CORPORATE_PROXY_USER@CLIENT_FTP.com abc/user_name
CORPORATE_PROXY_PASSWORD 
user_name_password
cd pub/linux/knoppix
get packages.txt
bye
-----------get.ini------------

abc/user_name 是我的用户名,通过我的公司代理获得了 FTP 权限。

我想用 C# 实现上面的脚本,但是在玩过互联网上找到的许多类型的代码后,我无法做到。

FtpWebRequest request = FtpWebRequest.Create(new Uri(@"ftp://" + CORPORATE_PROXY.com + @"/" + Path.GetFileName(fileToUpload))) as FtpWebRequest;
request.UseBinary = true;
request.KeepAlive = false;
request.Method = WebRequestMethods.Ftp.UploadFile;
if (!string.IsNullOrEmpty(CORPORATE_PROXY_USER) && !string.IsNullOrEmpty(CORPORATE_PROXY_PASSWORD ))
    request.Credentials = new NetworkCredential(CORPORATE_PROXY_USER, CORPORATE_PROXY_PASSWORD );

//Get physical file
FileInfo fi = new FileInfo(fileToUpload);
Byte[] contents = new Byte[fi.Length];

//Read file
FileStream fs = fi.OpenRead();
fs.Read(contents, 0, Convert.ToInt32(fi.Length));
fs.Close();

request.Proxy = new WebProxy("CLIENT_FTP.com");
request.Proxy.Credentials = new NetworkCredential(abc/user_name, user_name_password);

//Write file contents to FTP server
Stream rs = request.GetRequestStream();
rs.Write(contents, 0, Convert.ToInt32(fi.Length));
rs.Close();

FtpWebResponse response = request.GetResponse() as FtpWebResponse;
string statusDescription = response.StatusDescription;
response.Close();
return statusDescription;

主要问题是我正在使用 WebProxy 的代理,而我怀疑我应该使用 FTPProxy - 我在那里找不到任何东西?有什么想法我应该往哪个方向走,或者 WebProxy 可以吗?

【问题讨论】:

  • 支持 FTP 代理的自定义 FTP 客户端组件将成为您的朋友。

标签: c# .net ftp httpwebrequest


【解决方案1】:

过去我使用Indy Project 来通过 FTP 代理。

【讨论】:

    【解决方案2】:

    在您的代码示例中尝试使用WebRequest 而不是FtpWebRequest

    通过这样做,从客户端到代理的连接可以是 HTTP,而从代理到目标服务器的连接是 FTP。代理将处理协议转换,这种技术称为 FTP over HTTP。

    也可以使用本地 FTP 代理,其中客户端到代理和代理到服务器的连接是 FTP。确保您的代理支持此功能。

    代理提供一个单独的代理端口来服务本地 FTP 代理连接。

    【讨论】:

      猜你喜欢
      • 2018-07-25
      • 1970-01-01
      • 2019-04-18
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多