Как лучше всего запустить веб-браузер с настраиваемым URL-адресом из приложения C #?

Общеизвестно, что использование System.Diagnostics.Process.Start - это способ запустить URL-адрес из приложения C #:

System.Diagnostics.Process.Start ("http://www.mywebsite.com");

Однако, если этот URL-адрес недействителен, приложение, похоже, не может узнать, что вызов не удался или почему. Есть ли лучший способ запустить веб-браузер? Если нет, то каков мой лучший вариант проверки URL-адреса?


person Rick Minerich    schedule 24.09.2008    source источник


Ответы (3)


Попробуйте подход, описанный ниже.

try
{
    var url = new Uri("http://www.example.com/");

    Process.Start(url.AbsoluteUri);
}
catch (UriFormatException)
{
    // URL is not parsable
}

Это не гарантирует, что ресурс существует, но гарантирует, что URL-адрес правильно сформирован. Вы также можете проверить, соответствует ли схема http или https.

person Troels Thomsen    schedule 24.09.2008

Если вам нужно убедиться, что URL-адрес существует, единственное, что вы можете сделать, - это заранее создать собственный запрос и убедиться, что он работает. Тем не менее, я бы по-прежнему использовал Process.Start для перехода к реальной странице.

person Danimal    schedule 24.09.2008

Проверьте статический метод Uri.IsWellFformedUriString. Это дешевле, чем ловить исключение.

person derigel    schedule 26.09.2008
comment
Нет, это не так, но я бы использовал этот метод для простоты. Uri.IsWellFormedUriString вызывает Uri.TryCreate, который вызывает Uri.CreateHelper. В этом методе применяется тот же метод, что и в моем подходе, и обратите внимание, что вводятся накладные расходы, связанные с использованием нескольких методов. - person Troels Thomsen; 27.09.2008
comment
@troethom: Никогда не думал, что за кулисами будет такая тупая реализация ... вау. - person Andrei Rînea; 06.10.2008