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

Firebase推送通知报错:Content-Type请求头缺失(已用Curl发送)

Firebase推送通知:已添加Content-Type请求头仍报错的解决办法

以下是几个实用的排查和解决方向:

  • 严格检查请求头的拼写与大小写
    Firebase服务器对Content-Type请求头的大小写要求严格,必须写成Content-Type: application/json(注意首字母大写的C和T),如果写成小写的content-type,服务器会直接判定请求头缺失。

  • 核对Curl命令的参数顺序
    确保-H请求头参数放在-d请求体参数之前,部分场景下参数顺序错误会导致请求头未被正确解析。正确的命令示例:

    curl -X POST "https://fcm.googleapis.com/fcm/send" \
      -H "Authorization: key=你的服务器密钥" \
      -H "Content-Type: application/json" \
      -d '{
        "to": "目标设备Token",
        "notification": {
          "title": "测试通知",
          "body": "这是一条测试消息"
        }
      }'
    
  • 验证实际发送的请求头
    给Curl命令加上-v参数,查看请求的详细日志,确认Content-Type是否真的被发送出去:

    curl -v -X POST "https://fcm.googleapis.com/fcm/send" \
      -H "Authorization: key=你的服务器密钥" \
      -H "Content-Type: application/json" \
      -d '{...}'
    

    在输出中查找类似> Content-Type: application/json的行,如果没有出现,说明命令本身存在问题,比如参数被意外截断。

  • 排查中间代理或防火墙的干扰
    如果你的请求是通过代理或公司防火墙发送的,可能中间层会修改或移除请求头。尝试在无代理的环境(比如本地直接测试)运行Curl命令,验证是否能正常发送。

  • 检查脚本中的变量拼接问题
    如果是在Shell脚本中拼接Curl命令,确认Authorization密钥或其他变量没有包含特殊字符(比如空格、引号),导致请求头被意外截断。可以给变量加上引号确保完整传递。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 08:30:24