我需要向方法发送电子邮件地址Web.Api get
.在允许某人注册新帐户之前,我需要检查我们的系统中是否存在电子邮件地址.
我的第一个想法是encode
电子邮件地址,然后decode
它就在Get
Action 内部
URL看起来像这样
http://mysite/Api/RTSCredit/jharding%40email.com
但是,这始终是错误的404响应
这里是 WebApiConfig.cs
config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{emailAddress}", defaults: new { id = RouteParameter.Optional } );
当我发送一个简单的字符串 http://mysite/Api/RTSCredit/someemail
它会像我希望的那样点击Get动作,但显然无法返回有用的值.
这是Get Action
[HttpGet] public HttpResponseMessage Get([FromUri] string emailAddress) { using (IRtsCreditDal rtsCreditDal = new RtsCreditDal()) { var listOfExistingUsers = rtsCreditDal.GetUsersByEmail(emailAddress); if (listOfExistingUsers == null || listOfExistingUsers.Count == 0) { return Request.CreateResponse(HttpStatusCode.NotFound, "not found"); } else { return Request.CreateResponse(HttpStatusCode.OK); } } }
我需要做哪些调整才能将电子邮件发送到此Action
?
因为我一直在玩,它似乎不喜欢period
URL中的.我可以轻松地做一些事情来取代那个角色,但感觉就像一个黑客.
尝试在从客户端到达的电子邮件末尾添加尾随/:
http://localhost:8800/api/users/user@gmail.com/