2011-01-28 8 views
0

Я использую WCF/.NET 4.0/IIS7.5/Sever 2008REST и адресов электронной почты в URI

Я хочу, чтобы это сделать:

http://localhost/users/email/[email protected]

Но, это показывает на сервер, как это:

"банкнота"

"@microsoft" получает удален.

Я понимаю, что символ в символе является особым случаем. Есть ли изящный способ сделать это? Могу ли я дать мой метод WebGet, что этот метод будет принимать специальный символ и, пожалуйста, закодируйте его?

[WebGet(UriTemplate = "/email/{email}")] 
    [WebDispatchFormatter] 
    [OperationContract] 
    UserDto GetUserByEmail(string email); 

Как управлять адресами электронной почты с использованием WCF REST?

Спасибо.

ответ

2

Когда вы используете специальные символы в URI, вы должны URI кодировать их, а затем декодировать со стороны службы. Поскольку это .NET, вы можете использовать бит кодирования/декодирования для кодировки URL.

+0

как я могу кодировать адрес электронной почты, если он выдается как строка CURL из приложения iPhone? Должен ли я сказать разработчику приложения на стороне клиента для кодирования строки электронной почты? –

0

Возможно, вам нужно избежать знака @. Попробуйте http://localhost/users/email/bill%40microsoft.com

+0

Я думаю, что я, возможно, выбрал «ответ» слишком рано. Он по-прежнему отключается от «% 40microsoft.com» и просто возвращает счет ... hmmm –

Смежные вопросы