Вызов веб-API в приложении MVC (без GET / POST / DELETE / UPDATE) - PullRequest
0 голосов
/ 06 августа 2020

Я разрабатываю приложение MVC, которое при создании заказа отправляет SMS на зарегистрированный номер телефона. Поток:

  • Пользователь вводит личные данные (включая номер телефона) и спецификацию заказа c подробности
  • Пользователь получает SMS с кодом
  • Пользователь вводит код для подтверждения заказа

Я хочу, чтобы контроллер использовал веб-API для отправки кода сразу после создания кода в действии контроллера. Я использую веб-api "clickatell", где я могу отправить sms по этой ссылке: https://api.clickatell.com/http/sendmsg?user=[USERNAME]&password=[PASSWORD]&api_id=[API ID]&to=[PHONE NUMBER]&text=[TXT MESSAGE]

Мне не нужно получать обратно какую-либо информацию, API просто отправляет SMS, когда вы посещаете URL-адрес. Мне нужен контроллер, чтобы каким-то образом посетить веб-сайт (не показывая его) или просто отправить ему сообщение, чтобы запустить событие SMS.

Я пытался использовать классы Http, uri и url, но не могу найти какие-либо способы делать то, что я хочу. Есть ли простой способ вызвать веб-API и заставить его отправлять SMS из действия контроллера?

1 Ответ

1 голос
/ 06 августа 2020

Для получения результата от WebAPI можно использовать HttpClient . Также рекомендуется создавать его экземпляр только один раз для каждого приложения, а не для каждого использования (вы можете проверить примечания httpclient в msdn), но для примера я исключу это.

await new HttpClient().GetAsync("https://api.clickatell.com...")

Это вернет вам HttpResponseMessage , и вы можете также захотеть проверить свойство IsSuccessStatusCode (или напрямую вызвать EnsureSuccessStatusCode(), который вызовет исключение, если вы хотите обработать его таким образом), был ли запрос успешным или нет, поскольку внешняя служба может быть недоступна (или может возникнуть другая проблема)

...