Интересно, можете ли вы закодировать саму часть %2f
, чтобы .Net ее декодировал один раз, а затем отправил на сервер версию с правильной кодировкой?
Символ %
кодируется как %25
, поэтому попробуйте этот URL:
http://myserver.com/db/firstpart%252Fsecondpart
Если это сработает, возможно, вы могли бы улучшить код, вызвав System.Web.HttpUtility.UrlEncode .
Лучшим решением было бы проверить API на отключение экранирования. Для меня это похоже на ошибку API. Если я скажу фреймворку one/two%2fthree
, тогда что дает ему право угадывать меня? Но это мир HTTP. (Я слышал, что обратные прокси-серверы Apache httpd - это кошмар).