Description du problème
Vous ne pouvez pas recevoir le corps du message lorsque vous utilisez un script PHP comme HttpEndpoint dans Simple Message Queue (anciennement MNS).
Cause du problème
Ce problème survient car le script PHP utilise la méthode $_POST[] pour récupérer le corps HTTP. La méthode $_POST[] n'accepte que les données soumises depuis un formulaire avec le type de contenu suivant :
application/x-www-form-urlencoded
Or, les requêtes push MNS ne prennent en charge que les trois types de contenu suivants.
text/xml;charset=utf-8
text/plain;charset=utf-8
application/json;charset=utf-8
Solution
Vérifiez votre code PHP. S'il utilise la méthode $_POST[] pour récupérer le corps HTTP, modifiez-le comme suit.
file_get_contents("php://input");
Cette méthode permet de lire les données POST brutes. Elle fonctionne pour les données POST de différents types de contenu. Vous pouvez également l'utiliser pour récupérer des données brutes lorsqu'aucun type de contenu n'est spécifié.