首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过FTP代理的FTP

通过FTP代理的FTP
EN

Stack Overflow用户
提问于 2012-02-19 18:57:22
回答 2查看 2.7K关注 0票数 3

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

代码语言:javascript
运行
复制
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------------

FTP是我的用户名,它被授予通过我的公司代理访问abc/user_name的权限。

我想在C#中实现上述脚本,但在玩了互联网上的许多类型的代码后,我无法做到这一点。

代码语言:javascript
运行
复制
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很好?

EN

回答 2

Stack Overflow用户

发布于 2012-02-19 19:03:30

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

票数 0
EN

Stack Overflow用户

发布于 2018-01-22 06:17:53

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

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

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

代理提供单独的代理端口来为本机FTP代理连接提供服务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9348575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档