Vyr*_*tek 7 .net c# wcf urlencode
我需要完全URL编码电子邮件地址.
HttpUtility.UrlEncode似乎忽略了某些字符,如!和.
我需要在这样的网址中传递一个电子邮件地址:
/Users/me@example.com/Comments
Run Code Online (Sandbox Code Playgroud)
因为我的WebMethod uri模板如下所示:
[WebGet(UriTemplate = "Users/{emailAddress}/Comments")]
Run Code Online (Sandbox Code Playgroud)
句点会中断WCF,并且不会将电子邮件地址传递给我的REST Web服务方法.删除期间传递的值就好了.我希望有一种方法可以编码所有非字母数字字符,因为消费此服务的所有内容都需要这样做.
编辑
我考虑过使用:
Convert.ToBase64String(Encoding.ASCII.GetBytes("something+me@example.com"))
Run Code Online (Sandbox Code Playgroud)
大多数其他语言有简单的方法将字符串转换为base64吗?我主要担心的是,使用此服务的客户需要使用Java,PHP,Ruby等对电子邮件地址进行编码.
我发现了这个问题的解决方案。
.Net 4.0实际上已经解决了URI模板中特殊字符的问题。
这条线索为我指明了正确的方向。http://social.msdn.microsoft.com/Forums/en/dataservices/thread/b5a14fc9-3975-4a7f-bdaa-b97b8f26212b
我添加了所有配置设置并且它起作用了。但请注意,它仅适用于带有 .Net 4.0 的真实 IIS 设置。我似乎无法让它与 Visual Studio Dev IIS 一起使用。
更新 - 实际上,我尝试删除这些配置设置,它仍然有效。也许.Net 4.0已经默认修复了这个问题。