C # декодирует URL-адрес, содержащий% 2F по пути, есть ли способ дать API команду отправить URL-адрес как есть? - PullRequest
2 голосов
/ 17 ноября 2010

У меня есть URL в следующем формате abcd.com/xyz/pqr%2Fss/abc

Я хочу, чтобы это было отправлено на сервер как есть.Когда я собираю Uri с помощью System.Uri, он преобразует его в abcd.com/xyz/pqr/ss/abc, и он не работает, поскольку у меня нет URL с указанным путем.

Когда я пытался с двойнымкодируя (abcd.com/xyz/pqr%252Fss/abc), он отправляет Uri как есть, но при сбое на стороне сервера он преобразуется в (abcd.com/xyz/pqr%2Fss/abc)

Ответы [ 2 ]

0 голосов
/ 02 июля 2011

У меня тоже была эта проблема, но я нашел решение: когда вы используете HttpUtility.UrlEncode, чтобы быть уверенным, что приложение будет читать URL, вы должны построить ссылку следующим образом:

http://www.abcd.com/xyz?val=pqr%2Fss

и не так

http://www.abcd.com/xyz/pqr%2Fss

, где pqr%2Fss - результат HttpUtility.UrlEncode("SOME STRING")

0 голосов
/ 17 ноября 2010

Если вы строите свой URI как таковой:

Uri u = new Uri("http://abcd.com/xyz/pqr%2Fss/abc")

Доступ к закодированной строке, например:

u.OriginalString
...