Как создать URL?C#

Место общения программистов C#
Anonymous
Как создать URL?

Сообщение Anonymous »

Существуют ли в .NET какие-либо вспомогательные классы, позволяющие мне создать URL-адрес?
Например, если пользователь вводит строку:
< blockquote>
stackoverflow.com

и я пытаюсь передать это в HttpWebRequest:

Код: Выделить всё

WebRequest.CreateHttp(url);
Это не удастся, поскольку это недействительный URL-адрес (у него нет схемы).
Чего я хочу заключается в том, чтобы иметь возможность анализировать частичный URL-адрес, введенный пользователем:

Код: Выделить всё

Uri uri = new Uri(url);
а затем исправьте недостающие детали:

Код: Выделить всё

if (uri.Port == 0)
uri.Port = 3333;
if (uri.Scheme == "")
uri.Scheme = "https";
Есть ли в .NET какие-либо классы, которые можно использовать для анализа и управления Uri?
Класс UriBuilder не может выполнить эту работу
Значение, введенное пользователем (например, stackoverflow.com:3333), действительно; мне просто нужен класс, чтобы разобрать его на части. я пробовал использовать класс UriBuilder:

Код: Выделить всё

UriBuilder uriBuilder = new UriBuilder("stackoverflow.com:3333");
к сожалению, класс UriBuilder не может обрабатывать URI:
  • uriBuilder.Path = 3333< /li>
    uriBuilder.Port = -1
  • uriBuidler.Scheme = stackoverflow.com
Поэтому мне нужен класс, который может понимать хост:порт, что особенно важно, когда это не HTTP, но может быть.Bonus Chatter
Консольное приложение.
Из другого вопроса
Некоторые примеры URL-адресов, требующих анализа: Формат URL-адреса:

Код: Выделить всё

  foo://example.com:8042/over/there?name=ferret#nose
\_/   \_________/ \__/\_________/\__________/ \__/
|         |        |     |           |        |
scheme      host    port   path       query   fragment
Бонусная болтовня
Еще раз хочу отметить, что UriBuilder не работает:

Подробнее здесь: https://stackoverflow.com/questions/201 ... uild-a-url

Вернуться в «C#»