如何获得重定向响应

时间:2010-10-01 05:36:47

标签: c# asp.net

如果我将www.abc.com放在浏览器中,浏览器会自动重定向到www.xyz.com。我需要从服务器端获取该重定向URL。也就是说,如果www.abc.com返回重定向网址www.xyz.com,我该如何从原始网址(www.abc.com)请求此重定向网址(www.xyz.com)?

1 个答案:

答案 0 :(得分:18)

以下是网络抓取工具的一个片段,展示了如何处理重定向:

  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");
       ...
     }
  }