Как создать 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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