使用C#下载一个Internet上的文件主要是依靠HttpWebRequest/HttpWebResonse和WebClient。具体处理起来还有同步和异步两种方式,所以我们其实有四种组合。

1、使用HttpWebRequest/HttpWebResonse和WebClient

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);

WebResponse response = request.GetResponse();
Stream stream = response.GetResponseStream();

if (!response.ContentType.ToLower().StartsWith("text/"))

{
//Value = SaveBinaryFile(response, FileName);
byte[] buffer = new byte[1024];
Stream outStream = System.IO.File.Create(FileName);
Stream inStream = response.GetResponseStream();

int l;

do
{
l = inStream.Read(buffer, 0, buffer.Length);
if (l > 0)
outStream.Write(buffer, 0, l);
}
while (l > 0);

outStream.Close();

inStream.Close();
}

2、使用WebClient

string url = "http://www.mozilla.org/p_w_picpaths/feature-back-cnet.png";

WebClient myWebClient = new WebClient();
myWebClient.DownloadFile(url,"C:\\temp\\feature-back-cnet.png");

3、异步调用

异步调用可参见: