IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[Web Service] Envoyer une trame XML SOAP avec pièces jointes


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 9
    Points : 7
    Points
    7
    Par défaut [Web Service] Envoyer une trame XML SOAP avec pièces jointes
    Bonjour à tous !

    Je suis en train de travailler un peu avec un webservice et je bloque au moment d'ajouter des pièces jointes à l'envoi de mes requêtes.

    J'utilisais jusqu'à présent la classe SoapClient native de PHP, mais il me semble qu'elle ne peut pas gérer les pièces jointes.

    Je pensais donc utiliser nuSOAP, mais le soucis est que ma trame XML complète est déjà générée par un script.
    Il ne me reste plus qu'à l'envoyer, et je n'ai donc pas besoin des "outils de construction" de requête que propose nuSOAP.
    Je ne sais tout simplement pas envoyer une trame SOAP comme je faisais auparavant, à savoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $soap = new SoapClient(dirname(__file__).'/wsdl/webservice.wsdl');
    $this->reponse = $soap->__doRequest($this->soapXML, $this->soapAddress, $this->soapAction, 1);
    Cette solution fonctionne parfaitement mais ne me permet pas d'envoyer de pièces jointes.

    Pour information, voici un exemple de trame HTTP que doit recevoir le webservice :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    POST [URL] HTTP/1.1
    SOAPAction: [action soap]
    Content-Type: multipart/related; type="text/xml"; start="<rootpart@soapui.org>"; boundary="----=_Part_1_25758823.1255425707384"
    MIME-Version: 1.0
    User-Agent: Jakarta Commons-HttpClient/3.1
    Host: localhost:8080
    Content-Length: [size]
     
     
    ------=_Part_1_25758823.1255425707384
    Content-Type: text/xml; charset=UTF-8
    Content-Transfer-Encoding: 8bit
    Content-ID: <rootpart@soapui.org>
     
    <requeteSoapXML></requeteSoapXML>
     
    ------=_Part_1_25758823.1255425707384
    Content-Type: image/jpeg
    Content-Transfer-Encoding: binary
     
    [ code binaire de la/les pièce(s) envoyé(es) ]
     
    ------=_Part_1_25758823.1255425707384
    J'ai tenté de faire ça avec CURL de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    public function send_curl()
    {
        $curl = curl_init();
        $curlParam = Array(
        CURLOPT_URL => $this->soapAddress,
        CURLOPT_POST => true,
        CURLOPT_SSL_VERIFYPEER => false,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POSTFIELDS => $this->soapXML,
        CURLOPT_HTTPHEADER => Array($this->soapAction)
    );
    curl_setopt_array($curl, $curlParam);
    if (!($this->reponse = curl_exec($curl)))
        die(curl_error($curl).PHP_EOL);
    }
    Mais ça ne veut pas marcher.

    J'en arrive (enfin ! :p) aux questions :

    1. nuSOAP est-il un bon choix ? (je vais supposer que oui pour la suite des questions)
    2. Comment envoyer une trame XMP SOAP déjà formée à l'aide de nuSOAP ?
    3. Comment gérer l'envoi correct de pièces jointes avec une requête déjà formée avec SOAP ?

    Je suis preneur de toutes pistes, la je bloque complètement.

    Merci à vous !

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par Khamsin Voir le message
    1. nuSOAP est-il un bon choix ? (je vais supposer que oui pour la suite des questions)
    nuSOAP est libraire en PHP 4, prend quelque chose de plus moderne comme Zend_SOAP

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Merci pour le tuyau !
    Cependant, Zend_Soap_Client semble n'être capable que d'appeler des méthodes distantes (soap quoi ...).

    J'ai besoin de pouvoir envoyer une trame XML complète au webservice, et c'est la que je bloque.

    C'est d'ailleurs pour ça que j'ai fait des tentatives avec CURL, mais ce n'est pas très concluant pour le moment.

    Je communique avec le webservice mais il me donne une erreur (flux XML mal formaté).

  4. #4
    Candidat au Club
    Inscrit en
    Février 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Salut !

    J'ai la même problématique et je vais tester le framework suivant qui apparemment permet d'envoyer des pièces jointes : http://wso2.com/products/web-services-framework/php/.
    Si cela peut t'aider !

Discussions similaires

  1. Création de message SOAP avec pièce jointe JPG
    Par Dowins dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 26/04/2016, 00h42
  2. [XL-2010] Envoyer un email sous Outlook avec pièce jointe depuis excel
    Par liop49 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/04/2014, 11h59
  3. [Web Service] Créer une classe avec des "complexType"
    Par nawbacan dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 19/10/2010, 17h24
  4. Envoyer une requête XML à un service web
    Par Ares7_fr dans le forum Composants VCL
    Réponses: 3
    Dernier message: 23/06/2008, 17h55
  5. [Web Service] Construire une requête XML-RPC!
    Par lekunfry dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 14/01/2008, 15h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo