genmin Posté 5 Mai 2007 Posté 5 Mai 2007 Bonjour, voilà je suis novice en xml et me débrouille un peu en php, je cherche le moyen le plus simple possible d'envoyer un fichier xml à un serveur et récupérer la réponse de celui-ci, et tout ca en php si possible car je connais un peu ce language de programmation. J'ai lu pas mal de chose comme simple_xml mais qui, si je ne me trompe pas ne permet que d'interpréter un fichier xml, j'en aurai donc besoin par la suite pour interpréter la réponse récupérée. Mais mal heureusement rien de bien concret pour l'envois et surtout le retour de fichier xml Merci d'avance Genmin
Anonymus Posté 10 Mai 2007 Posté 10 Mai 2007 Le fichier xml dont tu parles est une chose, qui n'est pas à confondre avec la méthode utilisée pour l'envoyer. Pour envoyer/recevoir un fichier xml, tu as plusieurs solutions, à toi de choisir laquelle te convient le mieux. Pour que l'on puisse te répondre, il nous faudrait en savoir un peu plus, ne serait-ce pour savoir ce qui t'attend, de l'autre coté, sur l'autre serveur. C'est la facon dont l'autre serveur est configuré pour recevoir ton fichier qui va très probablement conditionner ton envoi d'xml. Idem pour le retour. Nico.
genmin Posté 11 Mai 2007 Auteur Posté 11 Mai 2007 merci pour cette réponse qui éclaire un peu plus ma lanterne. Mon projet est enfaite de réaliser une passerelle entre oscommerce et le serveur d'ups pour facilité la saisie des cordonnées clients pour préparer mes livraisons. Mon fichier XML contiendra donc les cordonnées pour une livraisons (nom adresse etc..) et la réponse du serveur sera une étiquette à imprimer à coller sur mes colis. J'ai donc regardé la notice que ups ma fait passer, mais je ne vois nul par le moyen de communication utilisé, il ne parle que de la syntaxe du fichier XML Merci pour votre aide
Anonymus Posté 12 Mai 2007 Posté 12 Mai 2007 Le problème, c'est que je n'ai pas la notice ups sous les yeux
Loupilo Posté 13 Mai 2007 Posté 13 Mai 2007 Pour respecter la norme, il faut aussi : * envoyer du contenu en XML bien sûr * envoyer le type mime 'text/xml' * ajouter un entête 'Content-length' qui contient la taille (en caractères) de la réponse Mais ça marchera bien aussi si tu ne fais qu'envoyer des données formatées en XML, le reste c'est du perfectionnisme
genmin Posté 15 Mai 2007 Auteur Posté 15 Mai 2007 merci pour toute ces réponses. voici la documentation UPS : http://bebedirect.com/Ship-WW-XML.pdf vous serez t'il possible de me donner quelque nom de methode utilisé pour l'envoi de fichier xml, comme ca j'aurai l'air moin bete quand j'appelerai ups pour leur demander laquelle utiliser Encore merci.
Anonymus Posté 15 Mai 2007 Posté 15 Mai 2007 pages 22 et suivantes : Il te faut envoyer les données XML encodées en base64, via HTTP, par méthode POST. Après, t'as 300 pages d'explications sur les éléments à envoyer, ceux que tu vas recevoir, etc.. Pour infos, j'ai rien trouvé sur le php dans la doc.. Y'a du java, mais pas de php Essaie de trouver sur internet si qqun s'est déjà lancé là dedans, sinon ca te fait un travail de fou :/
robinsonvendredi Posté 16 Mai 2007 Posté 16 Mai 2007 page 26 : An XML request is sent to an interface via the HTTP POST method... Je ne connais pas php mais en techno MS j'utiliserais l'objet COM : XMLHTTP pour l'envoi du fichier XML respectant le format UPS et la réception du message retour. peut-être existe-t-il un équivalent à XMLHTTP en php. Tu peux faire des recherches sur l'implémentation de SOAP en php, ça doit bien exister car c'est un besoin basique en e-commerce.
genmin Posté 18 Mai 2007 Auteur Posté 18 Mai 2007 merci pour votre aide, je me mets à la recherche d'un équivalent de XMLHTTP pour php, je ne dois quand meme pas etre le seul à vouloir faire un truc pareil !!
Xethorn Posté 18 Mai 2007 Posté 18 Mai 2007 Hello, Tout simplement : http://silent-strength.com/?articles/php/trackbacks. Le système est spécialisé pour les trackbacks, mais l'idée reste la même. Bonne lecture !
genmin Posté 19 Mai 2007 Auteur Posté 19 Mai 2007 petite question idiote !! les échange en POST ne sont ils pas limité à 256 caractères ? Si c'est le cas, comme y faire passer un fichier XML de plusieur 10ène de lignes ?
robinsonvendredi Posté 19 Mai 2007 Posté 19 Mai 2007 les échange en POST ne sont ils pas limité à 256 caractères ? Si c'était le cas il n'y aura pas beaucoup de formulaires sur les sites internet ! Toutefois il existe des problèmes de taille en effet, pour l'envoi de fichiers XML en http. Selon ma modeste expérience il vaut mieux faire une boucle pour 10 envois de 500 lignes qu'un seul envoi de 5000. Je suppose que ça dépend aussi de la techno utilisée
Xethorn Posté 4 Juin 2007 Posté 4 Juin 2007 Pour les fichiers xml envoyés par http, si tu es le seul à utiliser tes fichiers, penses bien à les compresser puis décompresser à l'arriver. Tu gagnes du temps, de la bande passante. Un xml zippé (ou bzippé) est bien plus léger qu'un xml non compressé ! Enfin, je le redis, tout dépend aussi qui utilise ton fichier ... si c'est toi, ça va, si c'est des externes, ça peut être plus problématique.
genmin Posté 4 Juin 2007 Auteur Posté 4 Juin 2007 Merci pour votre aide, j'ai enfin réussi à faire ce que je voulai. Voici la parti du code qui ma posé tant de problème. $ch = curl_init(); /// initialize a cURL session curl_setopt ($ch, CURLOPT_URL,$urlShipConfirm); /// set the post-to url (do not include the ?query+string here!) curl_setopt ($ch, CURLOPT_HEADER, 0); /// Header control curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);/// Use this to prevent PHP from verifying the host (later versions of PHP including 5) // If the script you were using with cURL has stopped working. Likely adding the line above will solve it. curl_setopt($ch, CURLOPT_POST, 1); /// tell it to make a POST, not a GET curl_setopt($ch, CURLOPT_POSTFIELDS, $upsXML); /// put the query string here starting with "?" curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); /// This allows the output to be set into a variable $xyz $upsResponse = curl_exec ($ch); /// execute the curl session and return the output to a variable $xyz curl_close ($ch); /// close the curl session A+
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant