C'è un modo semplice per aprire un Uri e ottenere ciò a cui punta? (C #)
Domanda
Ho un Uri
oggetto che viene passato a un costruttore della mia classe.
Voglio aprire il file i Uri.IsFile
punti, che si tratti di locale, di rete, http, qualunque sia, e leggere il contenuto in una stringa. C'è un modo semplice di fare questo, o devo cercare di lavorare fuori le cose come <=> di capire come per cercare di aprirlo?
Soluzione
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();
}
Non funzionerà per qualsiasi . Si lavora per file://
, http://
e https://
e ftp://
per impostazione predefinita. Tuttavia, è possibile registrare i gestori di URI personalizzato con WebRequest.RegisterPrefix
per farlo funzionare per quelli pure.
Altri suggerimenti
Il modo più semplice è quello di utilizzare la classe WebClient:
using(WebClient client = new WebClient())
{
string contents = client.DownloadString(uri);
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow