Rechercher : dans
Par :

Webservice et PHP / XML

Dernière réponse le 29 oct 2008 à 18:07:53 niac, le 12 oct 2007 à 11:29:29 
 Signaler ce message aux modérateurs

Bonjour,

J'ai une problematique concernant l'utilisation d'un webservice....
Je dois interfacer un logiciel developpé sous windev et un webservice privé (deja redigé et WSDL fourni) par l'intermediaire d'une page php. En effet le fournisseur du webservice, securise son webservice en acceptant une requete depuis une IP unique, et non depuis une IP dynamique que le logiciel chez les utilisateurs utilisera....Cette intermediaire nous sert aussi a identifier le client qui va utiliser le webservice externe, et enregistrer en bdd, les requetes et les reponses...
Je recois du logiciel une requete XML dejà préparée ayant la structure suivantes (attention je passe volontairement sur les objets, qui sont redigé conformément au WSDL)

<?xml version="1.0" encoding="ISO-8859-1"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://site/webservices/"
xmlns="http://site/webservices/">
<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<tns:GetValuation>
<Settings xmlns:lns="http://site/webservices/" xsi:type="lns:ETGsettingType" id="id0">
VALEURS A SOUMETTRE
</Settings>
<Valuation xmlns:lns="http://site/webservices/" xsi:type="lns:ValuationType" id="id0">
VALEURS A SOUMETTRE
</Valuation>
</tns:GetValuation>
DESCRIPTION DES VALEURS SOUMISES
</soap:Body>
</soap:Envelope>

J'enregistre correctement les requetes du logiciel en bdd, mais je suis bloquée à la phase d'envoi du fichier XML vers notre partenaire...

En effet je ne vois pas comment faire pour envoyer les données vers le webservice, et j'ai testé dejà des exemples de SOAP PHP, ainsi que de CURL, qui n'ont pas fonctionné....

Est ce que qq'un a de la documentation ou un exemple d'envoi d'un fichier XML vers un webservice ???
Merci d'avance....

niac

Meilleures réponses pour « Webservice et PHP / XML » dans :
PHP - Parser du XML Voir Introduction à XML PHP permet l'analyse syntaxique (parsage ou parsing en anglais) d'un document XML. Le langage XML (eXtensible Markup Language, traduisez Langage à balises extensibles) est un métalangage, c'est-à-dire un langage permettant de...
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
[PHP] Notice: Undefined index: VoirSi vous utilisez les tableaux $_POST ou $_GET pour récupérer les variables de vos formulaires ou autres, il se peut que vous tombiez sur cette erreur: Notice: Undefined index 'champs du tableau' in 'chemin du fichier php en cours d'execution' on line...
[PHP] Parse error, unexpected T_STRING, expecting ',' or ';' VoirCette erreur, fréquente, se produit notamment lorsqu'un guillemet est présent dans une chaîne délimitée par ce même type de guillemets, par exemple :
Télécharger PHP Edit VoirPHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de fonctionnalités permettant de développer plus efficacement : Coloration syntaxique Auto-complétion des fonctions Débuggeur...
Télécharger DriveImage XML VoirDriveImage XML est un programme permettant de faire des images du système (partitions et lecteurs logiques) à des fins de sauvegarde, à la manière de Norton Ghost. Ce programme permet : De créer des images des lecteurs logiques et des...
DOM (Document Object Model) et SAX (Simple API for XML) VoirXML permet de définir la structure du document uniquement, ce qui permet d'une part de pouvoir définir séparément la présentation de ce document, d'autre part d'être capable de récupérer les données présentes dans le document pour les...
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...

1

madinico, le 18 mar 2008 à 10:07:36

Bonjour Niac,

Je suis dans la même problématique que toi et je souhaiterais savoir si tu as trouvé une solution à ce problème.

Si oui, pourrais-tu partager cette solution afin que je puisse l'implémenter dans le cadre de mon activité ?

En te remerciant pour ton aide.

Madinico.

Répondre à madinico

2

latristef, le 26 jun 2008 à 13:29:21

Bonjour,
J'ai moi aussi le même problème.
Aviez-vous finalement trouvé la solution ?
Merci beaucoup !

Répondre à latristef

3

DJY80, le 25 aoû 2008 à 15:37:43

Bonjour,
J'ai moi aussi le même problème.
Aviez-vous finalement trouvé la solution ?
Merci beaucoup !

Répondre à DJY80

4

Blackmagic, le 23 oct 2008 à 22:33:53

Hello

Voici comment j'envoie du SOAP sans soucis

function sendData($request=''){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://cert.synxis.com/interface/ota2004a.aspx');
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_VERBOSE,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'xml='.$request);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_NOPROGRESS, 1);
$headers = array();
$headers[] = "Content-Type: application/soap+xml; charset=utf-8";
//$headers[] = "Content-Lenght: nnn";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
if($response = curl_exec($ch)) {
curl_close($ch);
return $response;
} else {
$error = curl_error($ch);
curl_close($ch);
die($error);
}
}

Répondre à Blackmagic

5

 niac, le 29 oct 2008 à 18:07:53
  • +1

Je viens de voir les réponses à mon message...
Et en effet j'ai résolu mon probleme de la facon suivante :

$post_data = $Requete; // Requete au format XML lu en BDD

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://urlduwebserviceappel.ext" ); //URL du webservice WSA / ASP / PHP
curl_setopt($ch, CURLOPT_POST, 1 );
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$postResult = curl_exec($ch);

if (curl_errno($ch)) {
print curl_error($ch);
}
curl_close($ch);


Ensuite dans mon cas perso, je stockais les réponses en base de données et retournais les réponses formaté correctement en amont par un simple :

print "$postResult";

Pour ceux qui ont un doute quand au formatage correct de la réponse fourni par le webservice, je vous conseille la methode de blackmagic

niac

Répondre à niac
Collection CommentÇaMarche.net