Например, если пользователь вводит строку:
< blockquote>
stackoverflow.com
и я пытаюсь передать это в HttpWebRequest:
Код: Выделить всё
WebRequest.CreateHttp(url);
Чего я хочу заключается в том, чтобы иметь возможность анализировать частичный URL-адрес, введенный пользователем:
Код: Выделить всё
Uri uri = new Uri(url);
Код: Выделить всё
if (uri.Port == 0)
uri.Port = 3333;
if (uri.Scheme == "")
uri.Scheme = "https";
Класс UriBuilder не может выполнить эту работу
Значение, введенное пользователем (например, stackoverflow.com:3333), действительно; мне просто нужен класс, чтобы разобрать его на части. я пробовал использовать класс UriBuilder:
Код: Выделить всё
UriBuilder uriBuilder = new UriBuilder("stackoverflow.com:3333");
- uriBuilder.Path = 3333< /li>
uriBuilder.Port = -1 - uriBuidler.Scheme = stackoverflow.com
Консольное приложение.
Из другого вопроса
Некоторые примеры URL-адресов, требующих анализа:
Код: Выделить всё
server:8088Код: Выделить всё
server:8088/func1Код: Выделить всё
server:8088/func1/SubFunc1Код: Выделить всё
http://serverКод: Выделить всё
http://server/func1Код: Выделить всё
http://server/func/SubFunc1Код: Выделить всё
http://server:8088Код: Выделить всё
http://server:8088/func1Код: Выделить всё
http://server:8088/func1/SubFunc1Код: Выделить всё
magnet://serverКод: Выделить всё
magnet://server/func1Код: Выделить всё
magnet://server/func/SubFunc1Код: Выделить всё
magnet://server:8088Код: Выделить всё
magnet://server:8088/func1Код: Выделить всё
magnet://server:8088/func1/SubFunc1Код: Выделить всё
http://[2001:db8::1]Код: Выделить всё
http://[2001:db8::1]:80
Код: Выделить всё
foo://example.com:8042/over/there?name=ferret#nose
\_/ \_________/ \__/\_________/\__________/ \__/
| | | | | |
scheme host port path query fragment
Еще раз хочу отметить, что UriBuilder не работает:
Подробнее здесь: https://stackoverflow.com/questions/201 ... uild-a-url
Мобильная версия