Header einer Webseite mit C# auslesen

Mit der folgenden Funktion könnt ihr euch ganz leicht eine Übersicht der Header einer beliebigen Webseiten anzeigen lassen.
Es genügt als Parameter die Url der gewünschten Webseite an die Funktion zu übergeben und ihr erhaltet als Rückgabewert der Funktion ein nettes Dictionary<string, string>, welches als Key den Namen der Headereigenschaft und als Value den Wert der Headereigenschaft enthält.

using System.Net;

//…

public Dictionary getHeaders(string url)
{
//Dictionary für Header (Dictionary)
Dictionary header = new Dictionary();

//Anfrage an die Übergebene URL starten
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);

//Antwort-Objekt erstellen
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

//Jeden einzelnen Headereintrag in das Header-Dictionary
//einfügen
foreach (string headerItem in response.Headers)
{
header.Add(headerItem, response.Headers[headerItem]);
}

//Webanfrage schließen
[…]

Quelltext einer Webseite mit C# auslesen

Mit dem folgenden kleinen Snippet könnt ihr den Quelltext einer Webseite auslesen und in einem string speichern.
Solch eine Funktion eignet sich zum Beispiel, wenn man einzelne Informationen aus einer Webseite parsen und anderweitig benutzen will.
Damit das Snippet funktioniert, müsst ihr eurem Quelltext folgende beide Using-Direktiven hinzufügen.

using System.Net;
using System.IO;

//Snippet von www.code-bude.net

Die Funktion zum Download des Quelltextes sieht dann wie folgt aus:

public string getHTML(string url)
{
//Anfrage an die Übergebene URL starten
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);

//Antwort-Objekt erstellen
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

//Antwort Stream an Streamreader übergeben
StreamReader sr = new StreamReader(response.GetResponseStream());

//Antwort (HTML Code) auslesen
string html = sr.ReadToEnd();

//Streamreader und Webanfrage schließen
sr.Close();
response.Close();

//Quellcode zurückgeben
return html;
}

//Snippet von www.code-bude.net

Ein Aufruf der Funktion könnte zum Beispiel so aussehen:

getHTML("http://www.code-bude.net");

//Snippet von www.code-bude.net

Solltet ihr Verbesserungsvorschläge oder sogar Probleme mit dem Snippet haben, schreibt mir einen Kommentar.
Viele Grüße,
Raffi

Emails versenden in C#

csharp Mail 150x150 Emails versenden in C#Heute zeige ich euch, wie man ganz einfach Emails in C# verschicken kann. Alles, was benötigt wird, bringt die Klasse System.Net.Mail mit sich.
Um nachher Email mittels des Snippets verschicken zu können benötigt ihr lediglich die Adresse eines SMTP-Servers und gegebenen Falls die Zugangsdaten für diesen. (Offene, sprich registrierungsfreie Server, werdet ihr heutzutage kaum noch finden.)
Wie die Adresse des SMTP-Servers eures Anbieters lautet erfragt/ergoogelt ihr euch am besten auf den Seiten eures Anbieters oder ihr schaut mal in eine dieser drei Listen ([1] [2] [3]).
Habt ihr alle nötigen Zugangsdaten parat, kann es auch schon losgehen.

public void sendMail(string absender, string empfaenger,
[…]

Pex for fun – ein Programmierspiel für Windowsliebhaber

pexforfuncom 300x218 Pex for fun ein Programmierspiel für WindowsliebhaberIch bin da gerade mal wieder über eine herrliche Webseite gestolpert, die ich euch nicht vorenthalten möchte.
Darauf aufmerksam geworden bin ich durch Herbivores Post in diesem Thread.
Bei der Webseite handelt es sich um www.pexforfun.com, auf der ihr etliche mehr oder weniger schwere Programmierrätsel lösen könnt. Bei der zu benutzenden Programmiersprache habt ihr die Wahl zwischen C#, F# und Visual Basic.
Die Rätsel sind alle auf der gleichen Basis aufgebaut. Es ist eine Funktion namens Puzzle vorgegeben, die einen oder mehrere Parameter annimmt und einen Rückgabewert hat.   Was die Funktion machen soll, müsst ihr herausfinden. Dabei steht euch eine Variante von Pex zur Verfügung. (Pex ist ein Tool zum Unit-Testing nach dem Whitebox-Verfahren, welches von Microsoft Research entwickelt wird.)

Bilder mit JPEG beliebig komprimieren in C#

Heute zeige ich euch, wie man Bilder mit Hilfe des JPEG-Codecs beliebig komprimieren kann. Beliebig heißt in unserem Fall, dass ihr die Qualitätsstufe festlegen könnt, die das Bild trotz des Komprimierens beibehalten soll. Da die Funktion, die ich euch dafür geschrieben habe relativ kurz ist, denke ich, dass die Kommentare im Quelltext ausreichen sollten. Und nun viel Spaß damit!

private void JpegBildKomprimieren(Image quellBild, int qualitaet, string speicherPfad)
{
try
{
//Ein ImageCodecInfo-Objekt für den JPEG-Codec anlegen
ImageCodecInfo jpegCodec = null;

//Den Qualitätsarameter konfigurieren (Qualitätsfaktor in
//Prozent angeben)
EncoderParameter qualitaetsParameter = new EncoderParameter(
[…]