Twilio错误 - 12300 - 仅在有时内容类型无效

时间:2017-01-14 03:05:44

标签: c# asp.net-web-api twilio twilio-api

我有一个与数字绑定的C#/ .NET WebApi端点。当该号码收到文本时,它会通过webhook转发到我的API。

有时(并非所有时间),我的调试器中出现以下错误:

  

错误 - 12300

     

内容类型无效

     

Twilio无法处理提供的URL的Content-Type。   有关更多信息,请参阅Twilio Markup XML文档   有效的内容类型。您必须为所有请求返回Content-Type。   没有Content-Type的请求将作为a显示在App Monitor中   502 Bad Gateway错误。

在触发此操作的响应中,我看到以下内容:

enter image description here

使用以下标题:

Content-Type application/json; charset=utf-8 
Pragma no-cache 
Date Sat, 14 Jan 2017 02:57:45 GMT 
X-AspNet-Version 4.0.30319 
X-Powered-By ASP.NET

可能导致此问题的原因,以及如何解决?

2 个答案:

答案 0 :(得分:3)

经过TWIML MESSAGE: YOUR RESPONSE的一些研究 这段代码似乎有用

[HttpGet]
public HttpResponseMessage SmsAnswerCallBack(string id)
{
    _smsAnswerCallBackCallIndex++;
    var r = new SmsApiResult();

    r.SetStatus(true, _smsSendCallIndex, _smsAnswerCallBackCallIndex);
    r.DataList  = _answers;

    var res     = Request.CreateResponse(HttpStatusCode.OK);
    res.Content = new StringContent("<Response/>", Encoding.UTF8, "text/xml");
    return res;
}

答案 1 :(得分:0)

我也在发送 json 响应并收到此错误。使用 Frederic Torres 的答案让我走上了正确的道路。看起来 Twilio 正在寻找 TwiML 格式的 XML。但是,如果您基本上只是以 text/xml 格式返回一个空的“Response”元素,则满足 Twilio。因此,对于遇到此问题的其他人,这里有一个简化的答案:

    public ContentResult IncomingSMS(string To, string From, string Body)
    {
            //do stuff
            //...
            return Content("<Response/>", "text/xml");
    }