Codefieber.de

IT-Blog

C# – WebRequest GetResponse dauert sehr lange

| Keine Kommentare

C# – WebRequest.GetResponse dauert sehr lange

Wenn ein WebRequest mit C# sehr lange dauert, bzw. das erste Mal wenn man ihn ausführt, länger braucht als die zukünftigen Male, liegt es daran, dass C# bzw. die GetResponse()-Methode nach einem Proxy sucht.

Um diese Wartezeit zu umgehen, kann man mit

WebRequest.DefaultWebProxy = null;

diese Suche ausschalten und somit diese Wartezeit umgehen. Allerdings kann man dann keinen expliziten Proxy mehr verwenden. Hier müsste man sich dann eine eigene Methode bauen, mit einer “if-else”-Verzweigung.

Hier nochmal ein Codesnippet:

public void TestWebRequest()
    {
        //if I dont include the following line the request takes ~40 seconds.
        WebRequest.DefaultWebProxy = null;

        var httpRequest = WebRequest.Create("http://google.com");                        

        var stopWatch = new Stopwatch();
        stopWatch.Start();
        using (var webResponse = httpRequest.GetResponse())//this is the line taking ages.
        {
            using (var sr = new StreamReader(webResponse.GetResponseStream()))
                Trace.WriteLine(sr.ReadToEnd());
        }
        stopWatch.Stop();
        Trace.WriteLine(string.Format("took {0} sec", stopWatch.Elapsed.TotalSeconds))
}
avatar

Autor: Pascal

Codefieber.de wird von Pascal Betke geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.