C# 使用WebCLient从网站下载文本文件

C# 使用WebCLient从网站下载文本文件,c#,web,webclient,C#,Web,Webclient,我们最近将工作中的ftp站点从切换到,现在检索文件的应用程序无法下载包含预期内容的文件 我以前使用过FtpWebRequest,它已经工作了很多年。 我现在尝试使用WebClient,它会下载一个文件,但它不是我需要的文本文件。相反,文件的内容是一些HTML 以前的工作: FtpWebRequest request = (FtpWebRequest)WebRequest.Create(getAppSetting("URI") + getAppSetting("FilePath") + args[

我们最近将工作中的ftp站点从切换到,现在检索文件的应用程序无法下载包含预期内容的文件

我以前使用过FtpWebRequest,它已经工作了很多年。 我现在尝试使用WebClient,它会下载一个文件,但它不是我需要的文本文件。相反,文件的内容是一些HTML

以前的工作:

FtpWebRequest request = (FtpWebRequest)WebRequest.Create(getAppSetting("URI") + getAppSetting("FilePath") + args[0].ToString());

request.Method = WebRequestMethods.Ftp.DownloadFile;

setCredentials(request);

FtpWebResponse response = (FtpWebResponse)request.GetResponse();

Changed code to handle https:

System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

WebClient request = new WebClient();                  

setCredentials(request);

string file = request.DownloadString(getAppSetting("URI") + getAppSetting("FilePath") + args[0].ToString());

结果是一个已下载但包含HTML的文件。我希望能把文件的内容放在我的网站上。

经过几周的研究,我终于找到了我需要做的事情,答案很简单。我发现我们的新网站使用SSH,所以我通过nugent包将SSH.Net安装到Visual Studio中,并添加了“使用Renci.SshNet;”。我使用以下代码将文件下载到本地驱动器:

using (SftpClient sftp = new SftpClient("ftp.website.com", 22,"username", "password")
{
   sftp.Connect();

   if (sftp.IsConnected)
   {
     using (Filestream fs = new FileStream("Output.txt", FileMode.Create))
      {
        sftp.DownloadFile("/file/Client/Input.txt", fs);
      }
   } 

   sftp.Disconnect();
 }

这很好用。我的文件不再作为HTML文件下载,我得到了我想要的输出。我希望这能为其他人节省大量时间。

您确定服务器正在发送“https”响应吗?可能它仍然发送“ftp”响应?您是否阅读了HTML的内容?这可能是一个标准的网页,上面说找不到内容。Poul,我怎么知道答案是什么?WebClient没有“GetResponse”的定义。我是否在使用该类检索数据?Neil,这是文件的一些当前内容: