J'essaie de tester une simple page PHP à l'aide de l'extension de chrome Postman. Lorsque j'envoie des paramètres d'URL, le script fonctionne correctement (par exemple, les variables sont disponibles dans le paramètre $_REQUEST
). Lorsque je les envoie en tant que paramètres x-www-form-urlencoded
, le paramètre $_REQUEST
contient uniquement la variable PHPSESSID
.
Le scénario:
<?php
var_export($_REQUEST);
?>
Lorsque j'envoie des paramètres d'URL, $_REQUEST
les inclut:
Mais lorsque je les envoie sous la formePOST
variables, $_REQUEST
ne les inclut pas:
Qu'est-ce que je rate?
Je réglais l'URL dans Postman sur http://
mais Apache redirigeait sur https://
et les variables POST ont été supprimées en cours de route.
Après que je l'ai changé en https://
, les variables POST ont fonctionné correctement.
Voir aussi: https://stackoverflow.com/a/28461500/704803
J'ai rencontré le même problème dans PostMan et Advance REST Client. J'ai vérifié auprès de fiddler et j'ai constaté que la charge de ma requête n'était pas convertie au format JSON.
Je transmets mes données dans Body en tant que x-www-form-urlencoded
Vous pouvez le réparer en utilisant Type de contenu comme application/x-www-form-urlencoded dans l'en-tête de la demande .
Utilisez simplement le Body Tab
et entrez le post parameters
à cet endroit. Notez que Body Tab
est désactivé si Get
est sélectionné.
Vérifiez votre type de contenu dans l'en-tête. J'avais un problème avec cet envoi de JSON brut et mon type de contenu en tant qu'application/json dans l'en-tête POSTMAN.
mon php voyait jack tout dans le post de demande. Ce n’est que lorsque j’ai remplacé le type de contenu par Application/x-www-form-urlencoded avec le JSON dans RAW textarea et son type, JSON, mon PHP application at-elle commencé à voir le message Les données. Pas ce à quoi je m'attendais quand je traite de json brut, mais ça marche maintenant pour ce dont j'ai besoin.
Lorsque vous envoyez des paramètres par x-www-form-urlencoded
, vous devez définir l'en-tête de la demande comme suit: Content-Type
en tant que application/x-www-form-urlencoded
.
J'avais le même problème. Pour résoudre ce problème, j'ai ajouté les en-têtes suivants:
Content-Type: application/json
J'ai dû ajouter manuellement le type de contenu même si j'avais également le type "json" dans les paramètres de champ de publication bruts.
Désolé s'il s'agit du fil Necromancy, mais cela est toujours d'actualité, en particulier avec la quantité d'API utilisées!
Un de mes problèmes était: je ne savais pas que sous la colonne 'Key' 'vous deviez mettre:' Content-Type '; Je pensais que c'était une clé d'utilisateur pour quand il est revenu dans la demande, ce qui n'est pas le cas.
Donc, quelque chose d'aussi simple que cela puisse vous aider, je pense que Postman pourrait mieux écrire cette colonne dans Word, car je n'ai même pas eu à lire la documentation sur l'utilisation de Fiddler; alors que je l'ai fait avec Postman.
Pour moi, le serveur était attendu par les requêtes HTTPS, mais je ne l’ai pas précisé dans l’URL. Le hook atteindrait le serveur, mais le corps serait vide.
Parfois, problème de version dans 'Postman':
J'ai face au même problème. Lors de l'envoi des données en utilisant la version la plus ancienne de postman.
Cette fois, j'ai reçu les données JSON vides côté serveur.
Et J'ai résoudre ce problème , Une fois que j'ai désinstallé la version la plus ancienne de Postman et installé avec la dernière version.