erreur api soap php

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : erreur api soap php

Re: erreur api soap php

par gabinou » 08 févr. 2022, 18:04

Pourrais tu m'éclairer un peu? 12h de recherche ,j 'ai beau lire la documentation et tout ce qui est indiqué ne marche pas . je me demande si c'est pas ma réception de données qui n'est pas bonne :-)

Re: erreur api soap php

par Invité » 08 févr. 2022, 18:04

Pourrais tu m'éclairer un peu? 12h de recherche ,j 'ai beau lire la documentation et tout ce qui est indiqué ne marche pas . je me demande si c'est pas ma réception de données qui n'est pas bonne :-)

Re: erreur api soap php

par gabinou » 07 févr. 2022, 17:20

Par contre, ce qui me choque c'est que je n'ai que des balises fermantes dans l'affichage de mon navigateur

Re: erreur api soap php

par gabinou » 07 févr. 2022, 17:08

Merci, je vais aller donc chercher des informations sur cette librairie

Re: erreur api soap php

par @rthur » 07 févr. 2022, 16:35

Tu reçois du XML en réponse, donc tu peux utiliser la librairie SimpleXML en PHP pour interpréter les résultats et faire les traitements que tu veux

Re: erreur api soap php

par gabinou » 07 févr. 2022, 16:05

En mettant

Code : Tout sélectionner

var_dump(json_encode($response)) ;
j'obtiens bien les balises dans mon navigateur par contrec'est pas lisible

string(705) ""<\/env:Header>4 PLACE DE L'EGLISE<\/adresse1>MME<\/civilite>62128<\/codePostal>CROISILLES<\/commune>2013-11-14<\/dateDebutFonction>[email protected]<\/mail>GENTY<\/nom>526797<\/nuIdentificateur>72880<\/nuperso>ANNE<\/prenom>+33 (0)555555555<\/telFixe>+33 (0)606060606<\/telPortable><\/informationPreleveur><\/ns2:getInformationPreleveurResponse><\/env:Body><\/env:Envelope>""

Dans un premier temps, je dois comparer l'identification rentré par le client dans le formulaire et verifié que cette identification existe bien et si oui, le formulaire peut etre validé sinon message d'erreur et impossible de valider le formulmaire si cette réponse n'est pas bonne.
Dans un deuxieme temps, il faudrai que je récupère les coordonnes de la réponse direct dans le formulaire mais le client pourra modifie l'adresse.
Je n'arrive pas a appeller en php ses résultats.
Voici mon code

Code : Tout sélectionner

<?php $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'http://wsdnarec.haras-nationaux.fr/dnaservices/DiffusionServices', CURLOPT_USERNAME=>'labeo', CURLOPT_PASSWORD=>'78t!m#0.', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS =>'<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webServices.server.ifce.fr/"> <soapenv:Header/> <soapenv:Body> <web:getInformationPreleveur> <!--Optional:--> <infoPreleveurIn> <!--Optional:--> <contextHn> <!--Optional:--> <isoLangage>EN</isoLangage> <!--Optional:--> <utilisateurID>LABEO</utilisateurID> <!--Optional:--> <applicationID>WSDNA</applicationID> </contextHn> <!--Optional:--> <identID>526797</identID> <!--Optional:--> <identKey>T</identKey> </infoPreleveurIn> </web:getInformationPreleveur> </soapenv:Body> </soapenv:Envelope>', CURLOPT_HTTPHEADER => array( 'Content-Type:application/soap+xml' // 'Content-type: text/xml' ), )); $response = curl_exec($curl); curl_close($curl); // var_dump($response);// affiche string (676) + la chaine de caractère // echo $response; // affiche la chaine de caractère // var_dump(json_decode($response)) ; // reponse :null var_dump(json_encode($response)) ; echo '<br><br><br>'; // problème, il affiche également le status 200 même si erreur dans l'identKey var_dump(http_response_code());//affichage du code erreur echo'<br><br><br>';

Re: erreur api soap php

par @rthur » 07 févr. 2022, 11:23

Regarde la source de ta page (Ctrl+u)

Re: erreur api soap php

par gabinou » 07 févr. 2022, 10:17

Même avec un var_dump, je reçois la même chose, sauf que devant cette chaine de caractère j 'ai ceci " string(676)" et dans ma console je recois bien toutes les balises, j'aimerai recevoir celle ci dans mon navigateur
Sinon je vais essayer de reprendre les mm balises de ma console pour voir ... c'est la première fois que je dois travaillé avec les api soap et xml

Re: erreur api soap php

par @rthur » 06 févr. 2022, 18:20

Pour debuguer il faut utiliser var_dump() et non pas echo ou print.
Car je parierai que ce que tu reçois est bien séparé par des balises ;-)

Re: erreur api soap php

par gabinou » 04 févr. 2022, 16:41

@rthur merci C'est bon ca marche, je récupère bien mes données.

" PLACE DE L'EGLISEMME62128CROISILLES2013-11-1475880@ifae.frGENTY52679772880ANNE+33 (0)555555555+33 (0)606060606"

Sauf que je ne peux pas travailler avec ca , y' a pas d'espace entre les données et j'ai besoin de ses données pour pouvoir les réinsérer dans un tableau pour les coordonnées et concernant le numéro d'identification, je l'ai rentré en dur et non via le formulaire client .

Re: erreur api soap php

par @rthur » 04 févr. 2022, 13:27

Non, ce message d'erreur dit que l'entête HTTP "Content-type" que tu envoies n'est pas acceptée par le serveur distant.

Pour des requêtes SOAP, il faut que l'entête Content-type soit "application/soap+xml".
Si le serveur distant ne respecte pas la norme, tu peux essayer aussi de mettre le Content-type text/xml

Avec curl pour indiquer les entêtes il faut que tu utilises curl_setopt() et CURLOPT_HTTPHEADER

Re: erreur api soap php

par gabinou » 04 févr. 2022, 11:41

J avais trouvé une vidéo qui m explique sauf que maintenant j ai cette erreur là.

"En :ServerUnsupported content type : application/x-www-form-urlencoded"

Si je comprend c est que mon résultat n est pas en format json.
J ai vu que il fallait mettre curlopt_postfields => json_encode() mais étant donné mon exportation,j ai déjà une donné, je ne vois pas.comment la rajouter.

Re: erreur api soap php

par @rthur » 04 févr. 2022, 11:28

Je savais pas que postman pouvait faire ceci " il peut même exporter le code PHP pour faire la requête", peux-tu m'éclairer?
Dans la barre de droite tu as une icone </> pour générer le code dans différents langages.
Je n'ai pas testé avec des requêtes SOAP mais sur une API REST JSON c'est redoutablement efficace.

Voici la doc :
https://learning.postman.com/docs/sendi ... -snippets/

Re: erreur api soap php

par gabinou » 04 févr. 2022, 09:43

Tout fonction dans postman.
Mon url et mon mot de passe sont bien les bons.

Je savais pas que postman pouvait faire ceci " il peut même exporter le code PHP pour faire la requête", peux-tu m'éclairer?

Re: erreur api soap php

par @rthur » 03 févr. 2022, 19:59

"Unauthorized" : il faut que tu vérifies l'url et tes identifiants, et vu que tu passes en paramètres d'autres ID ça pourrait aussi venir de là.

Mon conseil, ce serait déjà de vérifier que tout fonctionne avec Postman, c'est un super outil qui permet de vérifier que l'API fonctionne bien avec les identifiants et paramètres que tu veux, et il peut même exporter le code PHP pour faire la requête.
https://www.postman.com/
https://learning.postman.com/docs/sendi ... -requests/
Si avec Postman ça ne fonctionne pas => contacte le responsable de ce webservice car c'est qu'il te manque quelque chose.