Nous qui développons l'interface Restful de PHP savons tous qu'il existe une méthode PUT pour mettre à jour les ressources, alors comment utiliser la méthode HTTP PUT pour mettre à jour les ressources ? Cet article partage principalement avec vous l'explication détaillée de la soumission et de la réception des paramètres ? de la méthode Restful PUT en PHP, j'espère que cela pourra aider tout le monde.
Parfois, nous constatons que les paramètres envoyés par la méthode PUT ne sont pas du type que nous voulons. Nous voulons un tableau de paramètres, mais il est reçu sous forme de chaîne. Le problème est en fait que nous nous sommes trompés sur le type de Content-Type
. Nous avons envoyé des données correspondant à application/json
ou application/x-www-form-urlencoded
, mais Content-Type
était multipart/form-data
, donc les données reçues sont devenues des données de formulaire. :
----------------------------217287928126218120101488Content-Disposition: form-data; name="status" 1 ----------------------------217287928126218120101488--
et les données Restful sont essentiellement transmises au format json, donc l'en-tête HTTP envoyé doit être Content-Type=application/json
.
Utilisez POST MAN :
La méthode PUT accepte l'utilisation des paramètres :
parse_str(file_get_contents('php://input'), $data);
Les paramètres sont stockés dans $data
.
Si vous utilisez le framework tp5, vous pouvez utiliser la fonction d'assistance :
input('put.status');input('put.');
ps : Le malentendu entre les données du formulaire ici devrait être causé par les différentes manières d'analyser multipart/form-data
les données en interne dans PHP Méthodes POST et PUT. , la méthode POST analyse les paramètres dans $_POST et laisse le contenu vide, tandis que PUT n'effectue pas cette étape, alors faites attention à la différence d'utilisation.
Recommandations associées :
Identification automatique par PHP du type de contenu renvoyé par Restful
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!