设置请求箱时,我得到的响应似乎完全正常(请参见下面的屏幕截图)。当我使用命令
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);
}
如果有一个使用asp.net core 2.1的sms通知的github示例,那将是一个很大的帮助。
答案 0 :(得分:0)
此处是Twilio开发人员的传播者。您看到的错误最有可能与构建应用程序的方式无关,但事实是.NET希望传递一些主机标头来处理您的请求。以及为什么它可以与requestbin一起使用。
您尚未在问题中指定任何错误消息,因此这是猜测,但请尝试将ngrok的命令更改为以下内容:
ngrok http 5000 -host-header="localhost:5000"
您应该停止看到自己遇到的400
错误,并且请求应该可以正常处理。
希望这会有所帮助。