2012-09-03 19 views
18

Ich habe diese URL: URL from GoogleWie bekomme ich Inhalt von dieser URL?

Wenn Link in neuen Tab öffnen, zwinge mich der Browser, es herunterzuladen. Nach dem Download bekomme ich eine Textdatei mit dem Namen "s". Aber ich möchte C# -Zugriff auf diese URL verwenden und den Text abrufen, nicht als Datei auf dem Computer speichern. Gibt es einen Weg, dies zu tun?

+0

tun Sie dies über C# -Code zu tun? – shenku

+0

mögliches Duplikat von [Wie lade ich eine Datei von einer URL in C# herunter?] (Http://stackoverflow.com/questions/307688/how-to-download-a-file-from-a-url-in-c) oder [Datei von URL in eine Zeichenfolge herunterladen] (http://stackoverflow.com/questions/3231969/download-file-from-url-to-a-string). – adrianbanks

+0

herunterladen, lesen und löschen Sie die Datei. –

Antwort

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(); 
} 

Dies wird den Inhalt der Anfrage in strContent platzieren.

Oder wie adrianbanks unten einfach WebClient.DownloadString()

+11

Was ist falsch mit ['WebClient.DownloadString()'] (http://msdn.microsoft.com/en-us/library/system.net.webclient.downloadstring.aspx), die das gleiche in einem einzigen tun können Codezeile? – adrianbanks

+0

Nichts ... Ich denke, ich bin so sehr daran gewöhnt, WebRequest zu verwenden, weil ich kaum jemals eine einzelne Ressource bekomme oder mit Kopfzeilen umgehen muss. Um ehrlich zu sein, es ist mir nicht einmal in den Sinn gekommen, bis du es gerade jetzt erwähnt hast. – Josh

+0

@adrianbanks - zum einen glaube ich nicht, dass es in einem PCL funktioniert. – jbyrd

26

diese verwenden erwähnt Versuchen:

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

Ich mag die Idee nicht, das 'WebClient'-Objekt zu bereinigen. Verwenden Sie diese immer gerne mit Blöcken. – Wobbles