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] DataSnap et php - Appeler une méthode distante


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre habitué

    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Février 2013
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 148
    Points : 199
    Points
    199
    Par défaut [Web Service] DataSnap et php - Appeler une méthode distante
    Bonjour !

    J'ai une question, je bloque sur une subtilité.
    J'interroge un serveur distant avec datasnap grâce à curl.
    La méthode que j'appelle est SendAuthentification avec deux arguments vsLogin et vsPass.

    Voilà mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
      $url  = 'http://xx.xxx.xx.xx:8089/datasnap/rest/TServerMethods1/%22SendAuthentification%22/' ;
      $ch = curl_init() ;
      curl_setopt( $ch , CURLOPT_HTTPHEADER, array ( "Accept: application/json" , "Content-Type: text/xml; charset=utf-8" ) ) ;
      curl_setopt( $ch , CURLOPT_HEADER , FALSE ) ;
      curl_setopt( $ch , CURLOPT_RETURNTRANSFER , true ) ;
      curl_setopt( $ch , CURLOPT_POST , TRUE ) ;
      curl_setopt( $ch , CURLOPT_URL , $url ) ;
      curl_setopt( $ch , CURLOPT_POSTFIELDS , json_encode(array("vsLogin"=>"toto","vsPass"=>"tata"))) ;
     
      $result = curl_exec( $ch ) ;
     
      echo '<pre>';
      print_r ($result);
      echo '</pre>';
    Mais ça ne marche pas :
    {"error":"Impossible de convertir l'entr\u00E9e {\"vsLogin\":\"toto\",\"vsPass\":\"tata\"} de la valeur JSON en TDBXTypes.WideString"}
    la faute a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    curl_setopt( $ch , CURLOPT_POSTFIELDS , json_encode(array("vsLogin"=>"toto","vsPass"=>"tata"))) ;
    Avez une idée du problème ?
    Avec une méthode et 1 seul argument ça fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     curl_setopt( $ch , CURLOPT_POSTFIELDS , json_encode("valeur de l'argument 1")) ;
    Deux arguments je n'arrive pas à comprendre...

  2. #2
    Membre habitué

    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Février 2013
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 148
    Points : 199
    Points
    199
    Par défaut
    Bon j'ai trouvé.
    Facile

    Il faut créer une chaine à partir des arguments :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $argumentpath .= implode("/", $args);
    Et les ajouter à l'url
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    curl_setopt( $ch , CURLOPT_URL , $url.$argumentpath) ;

Discussions similaires

  1. Appel à une méthode de Web Service
    Par sillimi18 dans le forum Services Web
    Réponses: 1
    Dernier message: 13/06/2013, 20h28
  2. appel web service java en php
    Par legide dans le forum Services Web
    Réponses: 0
    Dernier message: 09/07/2009, 19h57
  3. Appeler un web service SOAP en php avec un client JavaScript
    Par lord.66 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 05/06/2009, 14h04
  4. Appeler un web service SOAP en php avec un client JavaScript
    Par lord.66 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 31/05/2009, 12h42

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