无法从ASP.NET Core MVC端点获取Twilio SMS响应

时间:2018-07-03 05:10:08

标签: asp.net-core twilio twilio-api

设置请求箱时,我得到的响应似乎完全正常(请参见下面的屏幕截图)。当我使用命令

ngrok http 5000

然后我将响应发送到本地http端点,如果控制器中的POST方法没有参数,则ngrok报告200OK。即使添加一个参数([FromBody]字符串内容),我也会从ngrok的控制台中收到400错误的请求。

我正在尝试以下几种不同的POST方法进行粘贴。我尝试从controllerbase和controller继承控制器,并得到相同的行为。

    [HttpPost]
    public string JsonStringBody([FromBody] TwilioSmsModel twilioSmsModel)
    {
        return "";
    }


     POST: api/SmsBody
    [HttpPost]
    public async Task<IActionResult> PostTwilioSmsModel([FromBody] TwilioSmsModel twilioSmsModel)
    public async Task<IActionResult> Post()
    {
        var twilioSmsModel = new TwilioSmsModel();
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        _context.TwilioSmsModels.Add(twilioSmsModel);
        await _context.SaveChangesAsync();

        return CreatedAtAction("GetTwilioSmsModel", new { id = twilioSmsModel.SmsSid }, twilioSmsModel);
    }

enter image description here

如果有一个使用asp.net core 2.1的sms通知的github示例,那将是一个很大的帮助。

1 个答案:

答案 0 :(得分:0)

此处是Twilio开发人员的传播者。您看到的错误最有可能与构建应用程序的方式无关,但事实是.NET希望传递一些主机标头来处理您的请求。以及为什么它可以与requestbin一起使用。

您尚未在问题中指定任何错误消息,因此这是猜测,但请尝试将ngrok的命令更改为以下内容:

ngrok http 5000 -host-header="localhost:5000"

您应该停止看到自己遇到的400错误,并且请求应该可以正常处理。

希望这会有所帮助。