无法在twilio消息接收服务中接收正文C#

时间:2019-07-18 21:14:43

标签: c# twilio messaging

我正在尝试使用Twilio API和webhook接收味精正文。当我在订阅的号码上发送消息但消息正文为null时,webhook服务被击中。

下面的C#代码段,即使我发送“ hello”,在这种情况下requestBody始终为空

TwilioClient.Init(accountSid, authToken);
var requestBody = Request.Form["Body"];
            var response = new MessagingResponse();
            if (requestBody == "hello")
            {
                response.Message("Hi!");
            }
            else if (requestBody == "bye")
            {
                response.Message("Goodbye");
            }
 return TwiML(response);

1 个答案:

答案 0 :(得分:0)

特维里奥传教士在这里....

我查看了您的问题,认为可能有2种可能的情况。

首先,似乎行var requestBody = Request.Form["Body"];可能无法正确解析POST请求正文。您可能需要调试并确认Request.Form["Body"]实际上确实保留了正在发送的消息正文。

这里的第二件事是,如果if / else if条件未评估为true,则没有默认情况。因此,我为您编写了一个样本,我们在7/30 Twitch流(www.twitch.tv/cldubya)上进行了测试。它是为ASP.NET Core编写的,并使用参数绑定来获取消息正文。看看下面。

[HttpPost]
public IActionResult Post([FromForm] string body)
{
    var requestBody = body;
    var response = new MessagingResponse();
    if (string.Equals(requestBody,"hello",StringComparison.CurrentCultureIgnoreCase))
    {
        response.Message("Hi!");
    }
    else if (string.Equals(requestBody, "bye", StringComparison.CurrentCultureIgnoreCase))
    {
         response.Message("Goodbye");
    }
    // adding a default message in the event that the if/else if condition doesn't evaluate to true
   else
   {
         response.Message("Couldn't determine what to respond with");
   }
   return new ContentResult { Content = response.ToString(), ContentType = "application/xml", StatusCode = 200 };
}

看看,让我知道您的想法。