Maneira mais fácil de ler de um URL em uma string em .NET

109

Dado um URL em uma string:

http://www.example.com/test.xml

Qual é a maneira mais fácil / sucinta de baixar o conteúdo do arquivo do servidor (apontado pelo url) em uma string em C #?

Estou fazendo isso no momento:

WebRequest request = WebRequest.Create("http://www.example.com/test.xml");
WebResponse response = request.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();

É muito código que poderia ser essencialmente uma linha:

string responseFromServer = ????.GetStringFromUrl("http://www.example.com/test.xml");

Observação: não estou preocupado com chamadas assíncronas - este não é um código de produção.

rédea
fonte

Respostas:

269
using(WebClient client = new WebClient()) {
   string s = client.DownloadString(url);
}
Marc Gravell
fonte
Outra daquelas classes de utilitários frequentemente esquecidos - mas tão útil.
Marc Gravell
2
Lembre-se de que você também deve colocá-lo em um try catchbloco, caso algo dê errado
mikeyq6
@DanW sim, é, acabei de testar (com string s = client.DownloadString("/programming/1048199/easiest-way-to-read-from-a-url-into-a-string-in-net/1048204");) - funciona perfeitamente bem. O que quer que esteja acontecendo: não é o https que é o problema imediato. Tem certeza de que o site possui um certificado válido?
Marc Gravell