2010-10-01 26 views
6

Sagen Sie, wenn ich www.abc.com in den Browser setze, wird der Browser automatisch zu www.xyz.com umgeleitet. Ich muss diese Weiterleitungs-URL von der Serverseite bekommen. Das heißt, wenn www.abc.com eine Weiterleitungs-URL www.xyz.com zurückgibt, wie kann ich diese Weiterleitungs-URL (www.xyz.com) von der ursprünglichen URL (www.abc.com) anfordern?So erhalten Sie eine Umleitungsantwort

Antwort

18

Hier ist ein Ausschnitt aus einem Web-Crawler, der zeigt, wie Umleitungen zu handhaben:

HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url); 
    webRequest.AllowAutoRedirect = false; // IMPORTANT 
    webRequest.UserAgent = ...; 
    webRequest.Timeout = 10000;   // timeout 10s 

    // Get the response ... 
    using (webResponse = (HttpWebResponse)webRequest.GetResponse()) 
    { 
    // Now look to see if it's a redirect 
    if ((int)webResponse.StatusCode >= 300 && (int)webResponse.StatusCode <= 399) 
    { 
     string uriString = webResponse.Headers["Location"]; 
     Console.WriteLine("Redirect to " + uriString ?? "NULL"); 
     ... 
    } 
    } 
+0

perfekt gearbeitet. thnx. – Rahatur

+1

Aus irgendeinem Grund wurde meine Bearbeitung nicht akzeptiert ... Der Aufruf von 'Close()' auf solche Weise ist eine schlechte Übung, Sie sollten stattdessen 'using' verwenden. –

+1

das funktioniert nicht für mich. Ich erhalte einen Nullwert, obwohl ich eine Verbindung mit der Ressource herstellen kann –

Verwandte Themen