我有一个与数字绑定的C#/ .NET WebApi端点。当该号码收到文本时,它会通过webhook转发到我的API。
有时(并非所有时间),我的调试器中出现以下错误:
错误 - 12300
内容类型无效
Twilio无法处理提供的URL的Content-Type。 有关更多信息,请参阅Twilio Markup XML文档 有效的内容类型。您必须为所有请求返回Content-Type。 没有Content-Type的请求将作为a显示在App Monitor中 502 Bad Gateway错误。
在触发此操作的响应中,我看到以下内容:
使用以下标题:
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
可能导致此问题的原因,以及如何解决?
答案 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");
}