Bra*_*rpy 9 twilio asp.net-core asp.net-core-3.1
我有一个 asp.net core (3.1) Web api,带有一个端点来接受 Twilio Messaging Webhook。当我从邮递员本地运行它时,它可以工作,当 webhook 发布时,我收到 415“不支持的媒体类型”
[ApiController]
[Route("[controller]")]
public class TwillioController : TwilioController
{
[HttpPost("ProcessIncomingMessage")]
public TwiMLResult ProcessIncomingMessage(SmsRequest incomingMessage)
{
Console.WriteLine($"Recieved new SMS from {incomingMessage.From}");
var messagingResponse = new MessagingResponse();
messagingResponse.Message("The copy cat says: " +
incomingMessage.Body);
return TwiML(messagingResponse);
}
}
Run Code Online (Sandbox Code Playgroud)
当我在邮递员的标头中包含 Content-Type:application/json 时,它会起作用。
我也尝试过添加
[Consumes("application/x-www-form-urlencoded")]
Run Code Online (Sandbox Code Playgroud)
也
[Consumes("application/xml")]
Run Code Online (Sandbox Code Playgroud)
并且两者仍然得到不受支持的媒体类型...无法弄清楚 Twilio 正在发送什么或我需要做什么才能使其与他们的 webhook 兼容。
正如其他答案提到的,Twilio 发送内容类型为 的请求x-www-form-urlencoded
。用属性注释的控制器中的操作需要在参数上[ApiController]
有一个属性才能工作,如下所示:[FromForm]
[ApiController]
public class TwilioController : ControllerBase
{
[HttpPost("")]
public TwiMLResult Post([FromForm] SmsRequest request)
{
// do stuff with the SMS request
}
}
Run Code Online (Sandbox Code Playgroud)
虽然您可以包含[Consumes]
属性,但这不是必需的。
归档时间: |
|
查看次数: |
1476 次 |
最近记录: |