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.

Respostas:


269
using(WebClient client = new WebClient()) {
   string s = client.DownloadString(url);
}

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.