Я применяю ретро-приложение для использования PHP HTTP-прокси (для кеширования) вместо фактического сервера API, приложение в настоящее время объединяет URI сервера и путь с кодом:
methodUri = new Uri(apiUri, method.Path)
Где:
- apiUri= " http://api.eve-online.com/" (объект System.Uri)
- method.Path= "/ char/SkillIntraining.xml.aspx" (строка)
Результат вышеуказанного утверждения
"http://api.eve-online.com/char/SkillIntraining.xml.aspx" (System.Uri Object)
Чтобы использовать прокси-сервер PHP HTTP, запрос должен быть изменен следующим образом
- apiUri= " http://www.r-s.co.uk/eproxy.php" (объект System.Uri)
- method.Path= "/ char/SkillIntraining.xml.aspx" (строка)
Ожидаемый результат:
"http://www.r-s.co.uk/eproxy.php/char/SkillIntraining.xml.aspx" (System.Uri Object)
Однако выход я получаю:
"http://www.r-s.co.uk/char/SkillIntraining.xml.aspx" (System.Uri Object)
Я понимаю, что это правильная функциональность конструктора Uri (Uri, string), мой вопрос в том, что было бы лучшей функцией или конструктором для использования на своем месте для получения ожидаемого результата? Я попытался удалить ведущий "/" в методе. Пат, беря его с абсолютного пути на относительный путь, но это не помогло.
ПРИМЕЧАНИЕ. оба решения ниже работают, однако System.UriBuilder обеспечивает более надежный механизм объединения URI и путей, и в моем случае это привело к меньшему количеству изменений ресурсов, чем при использовании System.Uri. Если бы у меня был выбор, я бы поставил оба ответа как правильные.