Правильный способ манипулирования URL-адресом из App.config

У меня есть URL-адрес ("http://localhost:2477/"), по которому я получаю и отправляю запрос. Я сохранил этот URL-адрес в файле app.config моего проекта.

В коде, в зависимости от функции, я добавляю к этому URL-адресу строку «getValue?id={0}» или «postValue». Но позже я столкнулся с проблемой, когда изменил URL-адрес на "http://localhost:2477" (без косой черты в конце) в app.config.

Мне потребовалось некоторое смущающее количество времени, чтобы понять эту проблему, что заставило меня задуматься, есть ли хороший способ справиться с этим случаем.

Независимо от того, есть ли в URL-адресе косая черта или нет, я хочу, чтобы мой код изменил ее на правильный URL-адрес.


person Pranav Raj    schedule 13.11.2018    source источник


Ответы (3)


Всегда используйте Path.Combine(string, string). Этот метод будет соответствовать допустимому пути и должен добавить /, если это необходимо.

редактировать Я понял, что мой ответ не работает для URL-адреса, только для путей к файлам.

Вместо этого вам нужен конструктор Uri.

Uri baseUri = new Uri("http://www.contoso.com");

Uri myUri = new Uri(baseUri, "catalog/shownew.htm");
person Pablo Recalde    schedule 13.11.2018

Использование URI вы можете более элегантно изменить свой URL-адрес. Вы можете легко получить доступ к хосту, порту, запросу и т. д. Аналогичный вопрос был задан здесь.

person Cardi DeMonaco Jr    schedule 13.11.2018

Попробуйте использовать UriBuilder, он гораздо более гибкий, чем конструктор Uri. См. https://stackoverflow.com/a/20164328/10574963.

person Martin S.    schedule 13.11.2018