На .NET существует ли блок проверки допустимости URL?

Если вы используете Capybara с E-mail Capybara , и вы отправили электронное письмо на test@example.com, вы также можете использовать этот метод:

email = open_email('test@example.com')

И тогда вы можете проверить это так:

expect(email.subject).to eq('SUBJECT')
expect(email.to).to eq(['test@example.com'])

36
задан Brian Webster 9 January 2013 в 05:55
поделиться

3 ответа

Вы можете использовать Uri.TryCreate для проверки URL:

public bool IsValidUri(string uri)
{
    Uri validatedUri;
    return Uri.TryCreate(uri, UriKind.RelativeOrAbsolute, out validatedUri);
}

Комментарии предполагают, что TryCreate просто перемещает обработку исключения на один уровень ниже. Однако я проверил исходный код и обнаружил, что это не так. Внутри TryCreate нет try / catch, он использует собственный парсер, который не должен бросать.

45
ответ дан 27 November 2019 в 05:24
поделиться
static bool IsValidUri(string urlString) {
   try {
      new Uri(urlString);
      return true;
   } catch {
      return false;
   }
}
-1
ответ дан 27 November 2019 в 05:24
поделиться

Более быстрый способ (возможно), чем использование функции try / catch, - это использовать Regex. Если бы вам пришлось проверять тысячи URL-адресов, перехватывая исключение несколько раз, это было бы медленно.

Вот ссылка на образец регулярного выражения - используйте Google, чтобы узнать больше.

0
ответ дан 27 November 2019 в 05:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: