Мне нужно отправить адрес электронной почты на метод Web.Api get
. Мне нужно проверить, существует ли электронный адрес в нашей системе, прежде чем разрешить кому-то зарегистрироваться для новой учетной записи.Кодировать адрес электронной почты для перехода на Web.API
Моя первая мысль была encode
адрес электронной почты, а затем decode
его, когда он был внутри Get
действий
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 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. Я мог бы легко сделать что-то, чтобы заменить этого персонажа, но это похоже на взлома.
Какая ошибка у вас т? – SLaks
Он получает ошибку 404 –
Что произойдет, если вы используете: http: // mysite/Api/RTSCredit? EmailAddress = enodedaddress? – Maess