Requête POST sans formulaire - $_POST vide

Invité
Invité n'ayant pas de compte PHPfrance

28 janv. 2008, 12:04

Bonjour à tous,

Je ne sais pas comment récupérer le contenu d'une requête HTTP POST un peu "particulière" pour moi. En effet, c'est dernière est issue par un logiciel client "riche" et non un formulaire HTML. Il n'y a pas de paramèters passés "à proprement parler" et le tableau $_POST est donc vide...
Pour clarifier un peu, voici ce que me donne le sniffer HTTP que j'utilise :

Code : Tout sélectionner

POST http://mydevserver.mydomain.com/myscript.php? HTTP/1.1 Content-Type: utf-8 Host: dev1.dmsolutions.ca Content-Length: 339 Expect: 100-continue <?xml version="1.0" encoding="utf-8"?><myXMLTag>myXMLTagValue</myXMLTag>HTTP/1.1 100 Continue
Quelqu'un pourrait-il m'aiguiller ?

Merci d'avance[/code]

Eléphant du PHP | 445 Messages

28 janv. 2008, 12:35

La requete semble mauvaise.

utf-8 est un Content-Encoding
Essaye plutot ca : Content-Type: text/html; charset=utf-8

Ensuite, ce que tu recuperes ne sont pas des données de formulaire mais un fichier xml directement.
Donc, pas besoin de $_POST.

Invité
Invité n'ayant pas de compte PHPfrance

28 janv. 2008, 12:48

Un grand merci pour ta réponse :),

Bien joué d'avoir pointé l'erreur. Malheureusement, je ne fais que recevoir la requête, elle est générée par le client "riche" (gaia à titer indicatif). Je ne peux donc pas la modifier.
Ensuite, ce que tu recuperes ne sont pas des données de formulaire mais un fichier xml directement.
Donc, pas besoin de $_POST.
C'est mon problème, je ne savais pas comment avoir accès au body de la requête... en fouillant un peu plus j'ai trouvé http_get_request_body ( void ) que je vais tester dans la foulée. C'est à ce type de fonction que tu pensais ?

Invité
Invité n'ayant pas de compte PHPfrance

28 janv. 2008, 13:04

La fonction que je viens de citer requiert que le module http soit installé. J'ai réussi en utilisant la variable $HTTP_RAW_POST_DATA
Encore merci :)