У меня есть следующий веб-интерфейс asp.net на моем сервере, который должен принимать номер телефона или адрес электронной почты в качестве имени пользователя для входа в систему. Он отлично работает с адресом электронной почты и номером телефона без префикса «+». номер телефона имеет + этот API никогда не получит.
Префикс маршрута класса: [RoutePrefix("api/Account")]
[HttpPost]
[HttpOptions]
[Route("{UserName}/ResetCode")]
public IHttpActionResult ResetCode([FromUri]string userName, [FromUri]string lan = null)
{
service.ResetCode(userName, language);
return Ok();
}
Запрос Fiddler:
с + в телефонном номере:
http://localhost:56771/api/Account/%2B18888888888/ResetCode?lan=en-US
Это не касается моего API.
Запрос Fiddler без +:
http://localhost:56771/api/Account/18888888888/ResetCode?lan=en-US
Этот URL попадает на службу.
Запрос Fiddler с электронной почтой:
http://localhost:56771/api/Account/abc%40GMAIL.COM/ResetCode?lan=en-US
Этот URL попадает в сервис.
Что может быть причиной того, что первый URL (указанный выше) не может подключиться к службе.
Спасибо за вашу помощь.