Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1116 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  requete flux xml avec curl

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

requete flux xml avec curl

n°1749559
gosty is b​ack
:::....Force & Honneur....:::
Posté le 20-06-2008 à 21:31:09  profilanswer
 

Bonjour,
 
mon autre post n'ayant plus l'air d'interesser grand monde je reviens poster mon probleme ici.
 
le but : avec curl envoyer une requete xml sur un flux xml et ensuite récuperer cette réponse.
j'ai écumé le net et impossible de faire marcher quoi que ce soit !
 
déjà j'ai trouvé cet exemple de script : http://www.higherpass.com/php/tuto [...] mplexml/1/
qui correspond tout à fait mais comme c'est pas très bien expliqué je vois pas quoi mettre pour les variables request et parameters. donc si quelqu'un comprend mieux que moi, une explication serait sympa.
 
 
voila ce que j'ai fais actuellement :
 

Code :
  1. $requete_xml = '<?xml version="1.0" encoding="UTF-8"?>';
  2. $requete_xml .='<REQUETE>';
  3. $requete_xml .='<DEMANDE_DISPO>';
  4. $requete_xml .='<ENTETE ..."';
  5. $requete_xml .='</REQUETE>';
  6. $useragent="Mozilla/4.0";
  7. $url = "http://91...";
  8. $referer=$url;
  9. $ch = curl_init($url);
  10. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);
  11. curl_setopt($ch, CURLOPT_TIMEOUT, 20);
  12. curl_setopt($ch, CURLOPT_POST,1);
  13. curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/xml'));
  14. curl_setopt($ch, CURLOPT_POSTFIELDS, $requete_xml);
  15. curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
  16. curl_setopt($ch, CURLOPT_REFERER, $referer);
  17. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  18. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  19. $ret=curl_exec($ch);
  20. if(!$ret) {echo 'out';}
  21. curl_close($ch);
  22. echo $ret;


 
y a forcément un truc qui cloche car ça m'affiche :

Citation :

entrez le paramètre URL nommé xml  
...de la forme: ?xml=<REQUETE><DEMANDE_DISPO>...


 
j'ai essayé plusieurs trucs que j'ai vu sur différents forums mais à chaque fois ça marche pas.
 
voila si quelqu'un peut me venir en aide, ça serait très sympa !
 
merci  :)


Message édité par gosty is back le 21-06-2008 à 14:51:55
mood
Publicité
Posté le 20-06-2008 à 21:31:09  profilanswer
 

n°1749642
gosty is b​ack
:::....Force & Honneur....:::
Posté le 21-06-2008 à 13:05:29  profilanswer
 

je viens aussi d'essayer une autre technique, toujours sans succès  :(  
 

Code :
  1. <?PHP
  2. $dom = new DOMDocument('1.0', 'UTF-8');
  3. $dom->formatOutput = TRUE;
  4. $requete = $dom->createElement('REQUETE');
  5. $dom->appendChild($requete);
  6. $DEMANDE_DISPO = $dom->createElement('DEMANDE_DISPO');
  7. $requete->appendChild($DEMANDE_DISPO);
  8. $entete = $dom->createElement('ENTETE');
  9. $DEMANDE_DISPO->appendChild($entete);
  10. $entete->setAttribute('IDPART', ...);
  11. ...
  12. $sendXML = $dom->saveXML();
  13. $url = "http://91.";
  14. $ch = curl_init($url);
  15. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
  16. curl_setopt($ch, CURLOPT_TIMEOUT, 30);
  17. curl_setopt($ch, CURLOPT_POST,1);
  18. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  19. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  20. curl_setopt($ch, CURLOPT_HEADER, 0);
  21. curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
  22. curl_setopt($ch, CURLOPT_POSTFIELDS, $sendXML);
  23. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  24. $ret=curl_exec($ch);
  25. if(!$ret) {echo 'out';}
  26. curl_close($ch);
  27. echo $ret;
  28. ?>


 
cette fois ci je crois que ma requete xml est bonne car elle s'affiche exactement comme le modele de requete xml que je dois emettre. maintenant le pb vient plus de curl j'ai l'impression, j'ai essayé pas mal d'options au niveau des header notamment, y a rien qui marche.
la réponse que je reçois maintenant c'est out, je sais pas alors si c'est le serveur d'en face qui marche pas ou si c'est ma requete qui fait tout foirer.
quelqu'un sait ou ça foire ?
 
merci d'avance

n°1749671
esox_ch
Posté le 21-06-2008 à 14:21:46  profilanswer
 

Moi ce que je fais dans ce genre de cas, c'est essayer avec un navigateur d'envoyer exactement les meme headers que ceux envoyés par CURL (tu peux contrôler que curl envoie bien ce que tu penses en loggant ton réseau avec un truc genre wireshark .. Si ton navigateur reçoit bien ce que tu attends, c'est que le problème est pas là. Si le navigateur reçoit aussi un timeout, ça peut venir de la config du serveur qui contrôle des trucs style version du navigateur/de l'OS & co pour éviter les bot

n°1749684
gosty is b​ack
:::....Force & Honneur....:::
Posté le 21-06-2008 à 14:56:18  profilanswer
 

merci pour ta réponse, malheureusement pas trop capter tout ce que tu voulais dire. je vais aller chercher sur google.
pour curl je pense que mon serveur marche car j'envoi déjà des requetes en post pour soumission de formulaires sur d'autres sites et ça marche.
l'url que je veux requeter est faite spécialement pour ça, elle est du style :
http://91....:8080/frontal/servlet/frontalSrv
en cherchant j'ai vu que servlet c'était du java, je me suis peut etre dit que du coup on pouvait pas interroger la base en passant par du php comme je fais ?
 
merci


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  requete flux xml avec curl

 

Sujets relatifs
[Résolu] Requete Access[SQL] Requete possible ?
problème exécution de requête[SQL] requéte multi table
Requête Sql avec variable PHPbesoin d'aide (avant 15h :/) requete SQL compliquée
Pb de temps d'execution d'une requetecreer une requete sql a partir d'1 formlaire
Probleme de requete a la base de donneescontenu form comme variable dans requete pour remplir un état
Plus de sujets relatifs à : requete flux xml avec curl


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR