C# 使用C从FTP服务器读取CSV文件#
我试图使用c从ftp服务器读取CSV文件,但问题是它不允许我读取并抛出此错误C# 使用C从FTP服务器读取CSV文件#,c#,asp.net,ftpwebrequest,C#,Asp.net,Ftpwebrequest,我试图使用c从ftp服务器读取CSV文件,但问题是它不允许我读取并抛出此错误 远程服务器返回错误:(530)未登录。 我花了很多时间研究这个问题,不幸的是我还没有找到解决办法。任何帮助都将不胜感激 代码如下: StringBuilder result = new StringBuilder(); FtpWebRequest reqFTP; try { String ftpserver = "ftp://domain.com/StatusChanges_20120922_043057.cs
远程服务器返回错误:(530)未登录。
我花了很多时间研究这个问题,不幸的是我还没有找到解决办法。任何帮助都将不胜感激 代码如下:
StringBuilder result = new StringBuilder();
FtpWebRequest reqFTP;
try
{
String ftpserver = "ftp://domain.com/StatusChanges_20120922_043057.csv";
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpserver));
reqFTP.UsePassive = false;
reqFTP.UseBinary = true;
reqFTP.Credentials = new NetworkCredential("test@domain.com", "password");
reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
reqFTP.Proxy = GlobalProxySelection.GetEmptyWebProxy();
FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.UTF8);
string line = "";
while (reader.Peek() > -1)
{
line = reader.ReadLine();
Console.WriteLine(line);//**********HTML was wrote out here*************
}
if (result.ToString().LastIndexOf('\n') >= 0)
result.Remove(result.ToString().LastIndexOf('\n'), 1);
reader.Close();
response.Close();
return result.ToString();
}
catch (Exception ex)
{
}
您需要做的是让它与外部FTP客户端正确连接,我假设您已经这样做了。一旦另一个FTP客户端正确连接,您可以再次检查所有凭据和设置是否匹配。完成此操作后,仍然无法工作,您应该使用类似的方法分析外部FTP客户端和程序发送到服务器的内容,并查看请求头中的差异。可能您缺少一个简单的设置 不确定,但我不知道Peek()是否是检测是否有更多数据需要读取的理想选择。如果您在这里尝试查找时,流不支持查找,则Peek()可以返回-1。我认为首选的方法是在循环中使用ReadLine,直到它返回null