2009-07-01 2 views

Répondre

9
static string GetContents(Uri uri) { 
    using (var response = WebRequest.Create(uri).GetResponse()) 
    using (var stream = response.GetResponseStream()) 
    using (var reader = new StreamReader(stream)) 
     return reader.ReadToEnd(); 
} 

Il ne fonctionnera pas pour tout. Cela fonctionne pour file://, http:// et https:// et ftp:// par défaut. Toutefois, vous pouvez enregistrer des gestionnaires d'URI personnalisés avec WebRequest.RegisterPrefix pour que cela fonctionne également.

5

La façon la plus simple est d'utiliser la classe WebClient:

using(WebClient client = new WebClient()) 
{ 
    string contents = client.DownloadString(uri); 
} 
+1

Malheureusement, il est thread-safe, ce qui est un problème, et de ce que je peux voir d'un coup d'œil rapide, il ne supporte que HTTP (I need atleast file: // too) –

+0

@Matthew: En interne, il utilise juste 'WebRequest' pour qu'il supporte aussi les fichiers: // et ftp: //. Si vous avez besoin de plus de contrôle, vous devriez utiliser 'WebRequest' directement. Si vous voulez juste une chaîne, utilisez 'WebClient'. –

+0

Il prend en charge d'autres URI. Ce n'est pas limité à HTTP. Et que voulez-vous dire par ne pas être thread-safe? –

Questions connexes