La méthode POST dans le protocole HTTP a plusieurs formats de protocoles de données, qui sont identifiés par différents types de contenu dans l'en-tête HTTP. Les plus couramment utilisés sont
application/x-www-form-urlencoded
, qui est le plus courant. , c'est-à-dire le format du formulaire from. Dans l'en-tête HTTP, c'est Content-Type: application/x-www-form-urlencoded.
multipart/form-data
. Ceci est utilisé pour télécharger des fichiers. Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
Brut. Ce n'est pas C'est particulièrement couramment utilisé. Les données transmises n'ont qu'un seul paragraphe dans le corps HTTP et ne sont pas stockées sous forme de paires clé-valeur, c'est
, Content-Type: application/json
, etc. sous forme de Content-Type: text
Content-Type: application/xml
Pour les données du formulaire Content-Type: text/xml
, en php, utilisez
Content-Type: application/x-www-form-urlencoded
$_POST['name']
Les données dans ce format peuvent être utilisées en php.
Content-Type: multipart/form-data;
Pour les données au format Raw, il n'y a aucun moyen de les obtenir. en utilisant les deux méthodes ci-dessus, et d'autres méthodes doivent être utilisées $_POST['name']
$_FILES['file']
1. Utilisez
Utilisez postman pour tester. il file_get_contents("php://input")
<?php $test=file_get_contents("php://input"); echo $test;
2 Utilisez
pour recevoir et testez-le avec. facteur $GLOBALS['HTTP_RAW_POST_DATA']
<?php $test=$GLOBALS['HTTP_RAW_POST_DATA']; echo $test;
cet index de tableau, que diable après un peu de Google, j'ai vu ce paragraphe. sur le site officiel de php
HTTP_RAW_POST_DATA
est déjà disponible en php5.6 Il a été abandonné et a été supprimé dans les versions postérieures à php7.0. La version php que j'utilise est la 7.2, donc il doit y avoir quelque chose qui ne va pas
D'accord, alors utilisez simplement pour l'obtenir HTTP_RAW_POST_DATA
file_get_contents("php://input")
<?php namespace app\index\controller; use think\Request; class Index { public function index(Request $request) { echo $request->getInput(); } }
La méthode d'obtention des données HTTP POST en php sera présentée ici en premier, j'espère qu'elle sera utile aux amis qui en ont besoin.
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!