Проблемы с WebAPI и Async для поставщика SMS - PullRequest
0 голосов
/ 07 марта 2019

Я пытаюсь вызвать API, предоставляемый SMS-сервисом VoodooSMS.У них нет документации о том, как реализовать в C #.Я попытался следующее, однако это никогда не ломается на response.StatusCode.Используя fiddler, я вижу, что запрос отправлен, но с 0 байтами в качестве содержимого и без ответа от сервера.Я включил живой API-ключ, поэтому, пожалуйста, имейте в виду, что это скоро изменится, но есть 20 кредитов для тестирования.

Это документация от Voodoo SMS https://www.voodoosms.com/api/#introduction

        async Task<string> sendVoodooSMS(ClientSMS clientSMS)
    {

        var request = WebRequest.Create("https://api.voodoosms.com/balance") as HttpWebRequest;
        request.Method = "GET";
        request.Headers.Add(HttpRequestHeader.Authorization, "Bearer BPNLmUBX9mjvYjN1kSgVW8wCocCnabPcrdoSzpryRRiq2w"); 

        var response = request.GetResponse() as HttpWebResponse;
        if (response.StatusCode == HttpStatusCode.OK)
        {
            Console.WriteLine(response.StatusCode);
        }
        else
        {
            Console.WriteLine(response.StatusCode);
        }

        return response.StatusCode.ToString();
    }




    [HttpPost]
    [ValidateAntiForgeryToken]
    [Authorize(Roles = "clients")]
    public ActionResult sendSMS(ClientSMS clientSMS)
    {

        ///
        ///
        /// TEST VOODOO SMS
        ///
        ///
        var voodooMessageResponse = this.sendVoodooSMS(clientSMS);

    }

Никогда прежде не писал сервис для использования RESTful API в C #, только в AJAX, поэтому я немного застрял.Любая помощь очень ценится.

ОБНОВЛЕНИЕ: Извините, просто чтобы уточнить, точка останова на этой строке, если (response.StatusCode == HttpStatusCode.OK) никогда не достигается, код возвращается к вызывающему методу.Вызывающий метод находится в моем контроллере, и я хочу дождаться результата, чтобы я мог обновить тип возвращаемого значения метода следующим образом.

        [HttpPost]
    [ValidateAntiForgeryToken]
    [Authorize(Roles = "clients")]
    public async Task<ActionResult> sendSMS(ClientSMS clientSMS)
    {

        ///
        ///
        /// TEST VOODOO SMS
        ///
        ///
        var voodooMessageResponse = await this.sendVoodooSMS(clientSMS);

Fiddler показывает это, что не имеет никакого смысла для меня.

Скрипач

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...