2012-09-03 23 views
18

Tengo esta URL: URL from Google¿Cómo obtener contenido del archivo de esta URL?

Cuando abra el enlace en una nueva pestaña, el navegador me obligará a descargarlo. Después de la descarga, obtengo un archivo de texto llamado "s". Pero quiero usar el acceso de C# a esta URL y obtener su texto, no guardarlo como un archivo en la computadora. ¿Hay alguna manera de hacer esto?

+0

qué quiere hacer esto a través de código C#? – shenku

+0

posible duplicado de [¿Cómo descargar un archivo de una URL en C#?] (Http://stackoverflow.com/questions/307688/how-to-download-a-file-from-a-url-in-c) o [Descargar archivo de URL a una cadena] (http://stackoverflow.com/questions/3231969/download-file-from-url-to-a-string). – adrianbanks

+0

descarga, lee y elimina el archivo. –

Respuesta

33
var webRequest = WebRequest.Create(@"http://yourUrl"); 

using (var response = webRequest.GetResponse()) 
using(var content = response.GetResponseStream()) 
using(var reader = new StreamReader(content)){ 
    var strContent = reader.ReadToEnd(); 
} 

Esto colocará el contenido de la solicitud en strContent.

O como adrianbanks mencionan a continuación sólo tiene que utilizar WebClient.DownloadString()

+11

¿Qué hay de malo con el uso de ['WebClient.DownloadString()'] (http://msdn.microsoft.com/en-us/library/system.net.webclient.downloadstring.aspx), que puede hacer lo mismo en un solo línea de código? – adrianbanks

+0

Nada ... Supongo que estoy tan acostumbrado a usar WebRequest porque casi nunca obtengo un solo recurso o tengo que ocuparme de los encabezados. Para ser honesto, ni siquiera apareció en mi cabeza hasta que lo mencionaste en este momento. – Josh

+0

@adrianbanks - para empezar, no creo que funcione en una PCL. – jbyrd

26

Prueba esto:

var url = "https://www.google.com.vn/s?hl=vi&gs_nf=1&tok=i-GIkt7KnVMbpwUBAkCCdA&cp=5&gs_id=n&xhr=t&q=thanh&pf=p&safe=off&output=search&sclient=psy-ab&oq=&gs_l=&pbx=1&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.&fp=be3c25b6da637b79&biw=1366&bih=362&tch=1&ech=5&psi=8_pDUNWHFsbYrQeF5IDIDg.1346632409892.1"; 

var textFromFile = (new WebClient()).DownloadString(url); 
+0

No me gusta la idea de no limpiar el objeto 'WebClient'. Siempre me gusta usar esos en el uso de bloques. – Wobbles

Cuestiones relacionadas