Twilio 语音 <Gather> - DotNetCore - 数字参数始终为空

Twilio Voice <Gather> - DotNetCore - Digits parameter always null

我正在尝试执行以下操作:

  1. 调用 twilio #。
  2. 从用户那里收集数字。
  3. 处理数字。

我正在使用 DotNetCore webapi。

我遇到的问题是,当 twilio posts 到 Gather 操作 uri 时,Digits 始终为空。我在 twilio 调试控制台中确认 Digits 参数确实有一个值。

这是我的控制器的简化版本:

[ApiController]
[Route("api/[controller]")]
public class VoiceController : ControllerBase
{
    [HttpPost]
    public IActionResult Post()
    {
        var response = new VoiceResponse();
        var say = new Say("Please type your meeting password.");
        var gather = new Gather(action: "placeholderURI/JoinMeeting");

        response.Append(gather).Append(say);
        response.Redirect("placeholderURI");

        return Content(response.ToString(), "application/xml");
    }

    [HttpPost("JoinMeeting")]
    public IActionResult JoinMeeting(string Digits)
    {
        var response = new VoiceResponse();
        
        if(Digits != null){
            //do stuff
        }else{
            var say = new Say("WRONG");
            response.Append(say).Redirect("placeholderURI");
        }
        
        return Content(response.ToString(), "application/xml");
    }
}

此外,我可以将 RAW 参数从调试控制台复制到 postman 的参数中,并成功地 post 到我的端点。

我错过了什么吗?也许在 JoinMeeting 方法上做一些装饰?

我没看懂手册...

在 twilio POST 上,参数将在正文中。

在 twilio GET 上,参数将在查询字符串中。

我将第二种方法更新为 GET 并确保指定方法:

var gather = new Gather(action: "uriPlaceholder", method: HttpMethods.Get);