問題描述
輕量消息隊列(原 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的數據,也可以用來獲取原始數據。
如果您的問題仍未解決,您可以在阿里云社區免費咨詢。
相關文檔
文檔內容是否對您有幫助?