url = "ftp://xxx.xxx.xxx.xxx/test.txt"
WebRequest
using System.Net; //don't forget this
public string DownloadFile(string url, string username, string pw)
{
string strResult = "";
try
{
WebRequest oRequest = HttpWebRequest.Create(new Uri(url));
oRequest.Credentials = new NetworkCredential(username, pw);
WebResponse oResponse = oRequest.GetResponse();
using (StreamReader sr = new StreamReader(oResponse.GetResponseStream()))
{
strResult = sr.ReadToEnd();
sr.Close();
}
oRequest = null;
oResponse = null;
}
catch (WebException wex)
{
//your error handling here
}
return strResult;
}MS recommend us to use the FtpWebRequest class if the file is on a FTP server.
public string DownloadFile(string url, string username, string pw)
{
string strResult = "";
try
{
FtpWebRequest oFtpReq = (FtpWebRequest)WebRequest.Create(new Uri(url));
oFtpReq.Method = WebRequestMethods.Ftp.DownloadFile;
//set the username & password
oFtpReq.Credentials = new NetworkCredential(username, pw);
//There is no need to use the binary mode for a simple and small text file
oFtpReq.UseBinary = false;
//Add this if you get an error like this:
//The remote server returned an error: 227 Entering Passive Mode
oFtpReq.UsePassive = false;
FtpWebResponse oFtpResp = (FtpWebResponse)oFtpReq.GetResponse();
using (StreamReader sr = new StreamReader(oFtpResp.GetResponseStream()))
{
strResult = sr.ReadToEnd();
sr.Close();
}
oFtpResp.Close();
oFtpReq = null;
oFtpResp = null;
}
catch (WebException wex)
{
//your error handling here
}
return strResult;
}Basically, using WebClient is the same with using WebRequest.
public string DownloadFile3(string url, string username, string pw)
{
string strResult = "";
try
{
using (WebClient oWebClient = new WebClient())
{
oWebClient.Credentials = new NetworkCredential(username, pw);
strResult = oWebClient.DownloadString(new Uri(url));
}
}
catch (WebException wex)
{
//your error handling here
}
return strResult;
}PS:
1.Be careful if the file size is big. If so, it's better to use byte[] to hold the stream.
2.FtpWebRequest supports resume download.
No comments:
Post a Comment