2015-09-24 38 views
0

我正在使用MVC4。在重定向到URL之前,可以測試URL的響應性嗎?

我想在動作結束時做一個重定向。

return Redirect("http://www.domain1.com"); 

不過,我想測試這個域名是否正確,如果不重定向到另一個即「domain2.com」

這可能嗎?

編輯

  try 
      { 
       using (HttpWebResponse response = webRequest.GetResponse() as HttpWebResponse) 
       { 
        if (response.StatusCode == HttpStatusCode.OK) 
        { 
         return Redirect("Domain1"); 
        } 
        else 
        { 
         return Redirect("Domain2"); 
        } 
       } 
      } 
      catch (Exception ex) 
      { 
       return Redirect("Domain2"); 
      } 

回答

5

是。你可能。想要打到域名並檢查200響應。像這樣的東西應該讓你開始。

HttpWebRequest request = HttpWebRequest.CreateHttp("http://www.google.com"); 
HttpWebResponse response = (HttpWebResponse) request.GetResponse(); 

if(response.StatusCode == HttpStatusCode.OK) 
{ 
    Console.WriteLine("Working"); 
} 
else 
{ 
    Console.WriteLine("Not Working"); 
} 
+0

如果他經常這樣做或許值得創建某種RedirectActionResult的是採用一級和二級鏈接 – GraemeMiller

+0

精湛...謝謝... – SamJolly

+0

我注意到,第二行例如崩潰該域是無效。還得到這與一個無效的證書。顯然我需要在測試返回值是200之前捕獲這些錯誤。有什麼方法可以做到這一點? – SamJolly