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

Services Web Discussion :

utiliser un web service php avec Visual Studio


Sujet :

Services Web

  1. #1
    Membre du Club
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 70
    Points : 42
    Points
    42
    Par défaut utiliser un web service php avec Visual Studio
    Bonjour,

    Voila j'ai créer une web service avec php qui me fournit une methode getServerDate(). Ce web service est disponible localement à l'adresse http://127.0.0.1/ServiceWebPHP/webservice.php.

    Ma question est :

    Comment utiliser la méthode de ce service web?


    J'avais vu sur un des tutos de ce site qu'il fallait mettre l'url du site ou est héberger le web service à l'envers. Mais la je suis sur le localhost, donc j'imagine que c'est pas la même chose. En tout cas j'ai essayé avec le localhost ca ne marche pas.

    Voila le code php :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    <?php
     
    // La classe qui va gérer les requètes SOAP
    class myWebService {
     
        // Méthode renvoyant une date standardisée
        function getServerDate() {
            return array('date' => date('Y-m-d\TH:i:s O'));
        }
    }
     
    // On tente d'instancier la classe soapServer
    // Si cela s'avère impossible, on lève une exception
    try {
        $server = new SoapServer('webservice.wsdl',  array('trace' => 1, 'soap_version' => SOAP_1_1));
        // On définit la classe qui va gérer les requètes SOAP
        $server -> setclass('myWebService');
    } catch (Exception $e) {
        echo $e;
    }
     
     
    // La méthode POST a été utilisée pour appeller cette page.
    // On suppose donc qu'une requète a été envoyée, on la gère
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        $server -> handle();
    } 
    // sinon, on affiche une liste des méthodes que peut gérer ce serveur
    else {
        echo '<strong>This SOAP server can handle following functions : </strong>';    
        echo '<ul>';
        foreach($server -> getFunctions() as $func) {        
            echo '<li>' , $func , '</li>';
        }
        echo '</ul>';
    }
    ?>
    et le fichier wsdl

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    <?xml version="1.0"?>
     
    <definitions name="CSP"
        targetNamespace="urn:CSP"
        xmlns:tns="urn:CSP"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        xmlns:typens="urn:CSP"
        xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
        xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
        xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
        xmlns="http://schemas.xmlsoap.org/wsdl/">
     
    <types>
        <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:CSP">       
            <xsd:complexType name="MyResults">
                <xsd:all>
                    <xsd:element name="date" type="xsd:string"/>
                </xsd:all>
            </xsd:complexType>
        </xsd:schema>
    </types>
     
    <message name="getServerDate">
        <part name="none" type="xsd:int"/>
    </message>
     
    <message name="getServerDateResponse">
        <part name="value" type="typens:MyResults"/>
    </message>
     
    <portType name="CspPorts">
        <operation name="getServerDate">
            <input  message="getServerDate"/>
            <output message="getServerDateResponse"/>
        </operation>
    </portType>
     
    <binding name="MyBinding"  type="typens:CspPorts">
        <soap:binding style="rpc" 
            transport="http://schemas.xmlsoap.org/soap/http" />
          <operation name="getServerDate">
              <soap:operation
                 soapAction="http://localhost/WebServicePHP/webservice.wsdl"/>
            <input>
                <soap:body use="literal"/>
            </input>
            <output>
                <soap:body use="literal"/>
            </output>
        </operation>
    </binding>
     
    <service name="MyWebService">
        <documentation>Mon Service web</documentation>
            <port name="CspPorts" binding="typens:MyBinding">
          <soap:address location="http://localhost/WebServicePHP/webservice.php"/>
        </port>
      </service>
     
    </definitions>
    Voila merci d'avance à ceux qui pourront m'aider!

  2. #2
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Si tu fait clic droit sur ton projet, ajouter une référence web (ou quelque chose dans le genre) et que tu donnes l'url de ton WSDL, ça ne fonctionne pas ?
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  3. #3
    Membre du Club
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 70
    Points : 42
    Points
    42
    Par défaut
    C'est ce que j'ai fait.

    La référence est bien ajouté a mon projet, mais ensuite je ne sais pas comment faire pour appeler la méthode de mon service web j'ai essayer de faire quelque chose comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    localhost.CSP ws = new localhost.CSP();
    DateServeur.Text = ws.getServerDate();

    CSP étant le nom de mon fichier wsdl et localhost l'url vu que c'est en local.

    Voici l'url du site que je suis allé voir pour utiliser un webservice via Visual Studio :

    http://www.supinfo-projects.com/fr/2...vice_en_php/2/

    Ils disent de mettre l'url du site à l'envers...

  4. #4
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    quand tu as ajouté la référence, VS a du te créer un proxy (un nouveau fichier avec différentes classes dedans). C'est ce proxy qu'il faut utiliser (je ne sais pas comment tu l'as appelé). Tu choisi le nom dans la fenetre d'ajout de référence ("nom de la référence web").
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  5. #5
    Membre du Club
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 70
    Points : 42
    Points
    42
    Par défaut
    Le nom est le nom par défaut c'est à dire WebReference, j'ai essayer de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WebReference.CSP ws = new WebReference.CSP();
    dateserveur.Text = ws.getServerDate();
    mais ca ne marche pas non plus, on dirait qu'il ne reconnait pas WebReference..

  6. #6
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Regarde sous quel namespace se trouve le proxy.
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  7. #7
    Membre du Club
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 70
    Points : 42
    Points
    42
    Par défaut
    Euh c'est quoi exactement le namespace?

    Dans le wsdl il y a marqué targetNamespace="urn:CSP"
    je sais pas si c'est ce que tu veux..


    Par ailleurs j'ai essayer sur mon pc personnel et j'ai une autre erreur :

    Impossible d'importer la liaison 'MyBinding' à partir de l'espace de nom 'urn:CSP'

    Voila J'espère que çà t'aideras à trouver le problème.

    PS: le wsdl c'est pas moi qui l'est fait j'ai récupéré ça sur un tuto sur le net, je dois faire ça pour un projet pour les cours mais les fichiers wsdl je sais pas trop commet ça marche

Discussions similaires

  1. Utilisation base de données acces avec Visual Studio 2008
    Par Mangamaster59 dans le forum Accès aux données
    Réponses: 0
    Dernier message: 26/05/2012, 12h10
  2. Importer un Web Service Java dans Visual Studio 2010
    Par gjeanne dans le forum Développement Sharepoint
    Réponses: 2
    Dernier message: 12/03/2012, 16h32
  3. Utiliser un web service php depuis dotnet
    Par mnemonic78 dans le forum C#
    Réponses: 1
    Dernier message: 04/11/2008, 15h00
  4. [WCF]Service WCF avec Visual Studio 2008
    Par chiv dans le forum Windows Communication Foundation
    Réponses: 5
    Dernier message: 23/02/2008, 17h07

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