全部产品
Search
文档中心

消息服务MNS中使用PHP编写HttpEndpoint接口时接收不到消息体

更新时间: 2020-09-25

问题描述

消息服务MNS中使用PHP编写HttpEndpoint接口时接收不到消息体。

问题原因

可能是因为PHP程序中使用$_POST[]方法获取HttpBody。$_POST[]方法只能接收如下Content-Type类型提交的数据,即表单POST过来的数据。

  • application/x-www-form-urlencoded

而消息服务MNS推送请求仅支持如下三种Content-Type的类型。

  • text/xml;charset=utf-8
  • text/plain;charset=utf-8
  • application/json;charset=utf-8

解决方案

检查您的PHP代码逻辑,是否直接使用$_POST[]方法获取HttpBody。如果是,建议修改为如下方式。

file_get_contents("php://input");

说明:该方法允许读取POST的原始数据,对于不同Content-Type的POST数据都可以使用,甚至对于未指定Type的,也可以用来获取原始数据。

相关文档

适用于

  • 消息服务MNS