3 Tipps um HttpWebRequests zu beschleunigen

HttpWebRequest LogoWer mit dem .NET-Framework arbeitet und ab und an HttpWebRequest benutzt, wird vielleicht schon einmal über das Phänomen gestolpert sein, dass Abfragen mittels der HttpWebRequest Klasse, je nach Fall, ziemlich langsam sein können. Vor allem, wenn man HttpWebrequest im Rahmen von Threading benutzt und probiert möglichst schnell Dateien darüber zu laden, wird die HttpWebRequest-Klasse schnell zur Spaßbremse.
Mag man Anfangs noch die Probleme an der Internetverbindung vermuten, merkt man meist spätestens nach einem Geschwindigkeitsvergleich mit wget oder Curl, dass das “Problem” bei der .NET-Implementierung liegen muss.
[aawp box=”3960090293″ template=”list”]Im nachfolgenden Artikel möchte ich auf 3 Punkte eingehen, die euch helfen, das letzte aus der HttpWebRequests-Klasse herauszuholen.

1. DefaultConnectionLimit erhöhen
Alle Instanzen der HttpWebRequest klasse richten sich nach gewissen Vorgaben des ServicepointManager. Eine der Eigenschaften des ServicepointManager ist das […]

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