проверка работоспособности URL-адреса и возможность перенаправления на этот URL-адрес, если не работает перенаправление на другой URL-адрес. - PullRequest
1 голос
/ 18 июля 2010

пространство имен WebApplication4 { открытый частичный класс _Default: System.Web.UI.Page {

    public static bool UrlIsValid(string url)
    {

        bool br = false;
        try
        {
            IPHostEntry ipHost = Dns.Resolve(url);
            br = true;
        }
        catch (SocketException)
        {
            br = false;
        }
        return br;
    }


    private void Page_Load(object sender, EventArgs e)
    {

        string url = "http://www.srv123.com";

       WebRequest wr = WebRequest.Create(url); 

использование (HttpWebResponse response = (HttpWebResponse) wr.GetResponse ()) { if (response.StatusCode == HttpStatusCode.OK) { response.Close ();

    Response.Redirect(url);
}
else
{
    Response.Redirect("http://www.yahoo.com");
}

когда я даю гугл, он перенаправляет на гугл, но когда я даю недействительный URL, он не перенаправляет на yahoo. я дал ответ перед перенаправлением

1 Ответ

1 голос
/ 18 июля 2010

Ваш UrlIsValid принимает параметр с именем smtpHost, что предполагает его работу с почтовыми SMTP-серверами. Затем внутри него вы пытаетесь разрешить весь URL как имя хоста. Это просто не будет работать вообще.

Вы можете создать новый объект Uri с URL-адресом, а затем создать объект WebRequest, см. Пример здесь:

http://msdn.microsoft.com/en-us/library/system.uri.aspx

Uri siteUri = new Uri("http://www.contoso.com/");
WebRequest wr = WebRequest.Create(siteUri);

// now, request the URL from the server, to check it is valid and works
using (HttpWebResponse response = (HttpWebResponse)wr.GetResponse ())
{
    if (response.StatusCode == HttpStatusCode.OK)
    {
        // if the code execution gets here, the URL is valid and is up/works
    }
    response.Close();
}

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...