You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js集成Twilio短信状态回调出现大量11200错误求助

解决Twilio 11200错误:状态回调响应缺失Content-Type问题

嘿,这个11200错误我太熟了!之前用Twilio做短信状态回调的时候也踩过这个坑——明明短信发成功了,但日志里一堆红错误看着闹心,其实问题出在你的状态回调接口的响应上。

问题根源

Twilio对Webhook(也就是你的状态回调URL)的响应有个硬性要求:必须返回包含合法Content-Type头部的2xx响应。哪怕你不需要返回任何业务内容,也得给Twilio一个符合规范的响应头,不然它就会抛出“读取响应错误:响应不包含内容类型”的11200错误。

而且这里要注意:短信发送和状态回调是异步的——Twilio收到你的发送请求后就会返回成功,但之后才会去调用你的回调URL,所以回调的错误不会影响已经发出的短信,但会在日志里留下错误记录。

具体解决办法

根据你用的Node.js框架(比如Express或者原生http模块),给回调接口加上Content-Type头部就行:

如果你用Express框架:

app.post('/api/1.0/sms/response', (req, res) => {
  // 这里写你的状态处理逻辑:比如把短信状态写入数据库
  console.log('收到Twilio状态回调:', req.body);

  // 关键步骤:设置Content-Type并返回200响应
  res.set('Content-Type', 'text/plain');
  res.status(200).send('OK');
  // 如果你习惯返回JSON,也可以这么写:
  // res.set('Content-Type', 'application/json');
  // res.status(200).json({ status: 'success' });
});

如果你用原生Node.js http模块:

const http = require('http');
const server = http.createServer((req, res) => {
  if (req.url === '/api/1.0/sms/response' && req.method === 'POST') {
    // 处理回调请求的内容(比如解析POST数据)
    let body = '';
    req.on('data', chunk => body += chunk);
    req.on('end', () => {
      console.log('Twilio回调数据:', body);
      // 设置Content-Type并返回响应
      res.writeHead(200, { 'Content-Type': 'text/plain' });
      res.end('OK');
    });
  }
});

额外检查项

  • 确保你的回调URL是公开可访问的(本地开发的话可以用内网穿透工具把本地端口暴露到公网)
  • 响应状态码必须是2xx(比如200),别返回4xx或5xx状态码
  • 如果返回JSON格式,一定要保证JSON是合法的,同时Content-Type设为application/json

内容的提问来源于stack exchange,提问作者gbryant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:02:49