2008-08-25 8 views

Respuesta

56
public static void DownloadFile(string remoteFilename, string localFilename) 
{ 
    WebClient client = new WebClient(); 
    client.DownloadFile(remoteFilename, localFilename); 
} 
+6

¡Este es el más lento! La creación de un nuevo WebClient tiene una demora de 3-5 antes de que realmente la descarga haya escuchado debido a la verificación del soporte de proxy. Recomendaría usar un enfoque de Socket para descargar, ya que es la solución más rápida posible. – SSpoke

+2

Interpreté el modo más rápido como "con el menor número posible de letras de código". –

23

System.Net.WebClient

De MSDN:

using System; 
using System.Net; 
using System.IO; 

public class Test 
{ 
    public static void Main (string[] args) 
    { 
     if (args == null || args.Length == 0) 
     { 
      throw new ApplicationException ("Specify the URI of the resource to retrieve."); 
     } 
     WebClient client = new WebClient(); 

     // Add a user agent header in case the 
     // requested URI contains a query. 

     client.Headers.Add ("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)"); 

     Stream data = client.OpenRead (args[0]); 
     StreamReader reader = new StreamReader (data); 
     string s = reader.ReadToEnd(); 
     Console.WriteLine (s); 
     data.Close(); 
     reader.Close(); 
    } 
} 
+5

deseo de MSDN en realidad disponer de los recursos IDisposable en sus ejemplos. Una pequeña excepción y el Stream/StreamReader no se limpiará. 'using' es tu amigo. –

22

Utilice la clase WebClient de System.Net; en .NET 2.0 y superior.

WebClient Client = new WebClient(); 
Client.DownloadFile("http://mysite.com/myfile.txt", " C:\myfile.txt"); 
4

aquí está mi respuesta, un método que toma una URL y devolver una cadena

public static string downloadWebPage(string theURL) 
    { 
     //### download a web page to a string 
     WebClient client = new WebClient(); 

     client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)"); 

     Stream data = client.OpenRead(theURL); 
     StreamReader reader = new StreamReader(data); 
     string s = reader.ReadToEnd(); 
     return s; 
    } 
3

WebClient.DownloadString

public static void DownloadString (string address) 
{ 
    WebClient client = new WebClient(); 
    string reply = client.DownloadString (address); 

    Console.WriteLine (reply); 
} 
Cuestiones relacionadas