Verfasst von: bletra | 17. Juni 2011

WebRequest und WebResponse

Autoren: Marius Kolkowski und Jan Drietelaar

WebRequest ist eine abstrakte Basisklasse die zum Anforderungs-/Antwortmodell von .Net gehört. Sie ist ab .Net Framework 2.0 verfügbar und ist vorerst protokoll-unabhängig. Klassen, die von dieser erben, können auf die verschiedenen Protokolle genauer eingehen. Um eine neue Instanz von WebRequest zu erstellen, sollte man die Funktion Create() benutzen. Hier wird dann der Eingabestring (die abzufragende URI) auf ihr Protokoll untersucht und eine Instanz einer abgeleiteten Klasse zurückgegeben. Sollte beispielsweise die Webseite http://www.google.de abgefragt werden, dann liefert uns die Funktion Create() des WebRequests ein Objekt einer davon abgeleiteten Klasse HttpWebRequest. Wollen wir jetzt eine Antwort der URI erhalten, können wir per GetResponse() diese protokollspezifisch bekommen. Dabei wird ein Instanz der Klasse WebResponse zurückgegeben — genauer ein HttpWebResponse-Objekt; denn auch hier ist es so, dass WebResponse eine abstrakte Basisklasse ist, welche protokollunabhängig funktioniert. Das alles hat den Sinn, um erst während der Laufzeit auf die Protokollart eingehen zu müssen. Nachdem wir unsere Antwort erhalten haben, können wir diese weiterverarbeiten und z.B. ausgeben lassen.

// Erstellen eines WebRequests. Die Create-Methode gibt in diesem Fall ein HttpWebRequest-Objekt zurück.
HttpWebRequest req = WebRequest.Create("http://www.google.de");
// Die Antwort der URI wird in ein WebResponse-Objekt geladen und kann hier weiterverarbeitet werden. Auch hier wird ein Abgeleitetes WebResponse Objekt erstellt (ein HttpWebResponse Objekt).
WebResponse resp = req.GetResponse();
// Hier ein Beispiel, wie das WebResponse Objekt in eine string Variable weiterverarbeitet werden kann.
StreamReader sr = new StreamReader(resp.GetResponseStream());
// In unserem Beispiel enthält die string Variable jetzt den HTML Code der Webseite Google.
string htmlCode = sr.ReadToEnd();

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

Kategorien

%d Bloggern gefällt das: