J'écris un script qui est enregistré en tant que point final pour un Webhook. Je sais qu'il a été enregistré avec succès car j'écris l'en-tête de chaque demande dans les journaux de mon serveur. Voici un exemple:
Content-Type: text/xml; charset=UTF-8
User-Agent: Jakarta Commons-HttpClient/3.1
Host: =={obfuscated}==
Content-Length: 1918
L'API avec laquelle je me suis inscrit est un objet JSON POST-ing à mon script, et j'aimerais analyser cet objet à l'aide de PHP. Comme vous pouvez le constater à partir de l'en-tête de la requête, un objet JSON très volumineux et volumineux attend d'être analysé. Cela semble simple, mais ça ne l’a pas été.
Au début, j'ai essayé d'utiliser $_POST['json']
ou simplement $_POST
, mais comme les données ne sont pas dans un tableau, je ne savais pas vraiment comment y accéder de cette manière.
J'ai essayé d'utiliser file_get_contents('php://input')
et fopen('php://input', 'r')
avec et sans json_decode()
mais pas de chance. Je ne peux pas utiliser http_get_request_body()
car le serveur sur lequel je suis installé ne possède pas PECL et cela échappe à mon contrôle.
Existe-t-il d'autres moyens d'interagir avec l'objet JSON POST-ed qui me manque? Merci!
Merci aux autres pour leur contribution. Il s'avère que j'avais juste besoin
$inputJSON = file_get_contents('php://input');
$input = json_decode($inputJSON, TRUE); //convert JSON into array
où le deuxième paramètre dans json_decode
a retourné l'objet sous forme de tableau.
J'espère que ceci aide quelqu'un d'autre!
Même quand ce qui suit fonctionne.
$inputJSON = file_get_contents('php://input');
Si vous souhaitez continuer à utiliser $ _POST, envoyez les données en tant que FormData
var fd = new FormData();
fd.append('key', 'value');
return axios.post('url', fd)