2011-02-17 2 views
1

Je souhaite appeler un service Web ASP classique à partir de PHP.Appel du service Web ASP classique à partir de PHP

Voici le service:

<% 
    Response.Buffer = True 
    Response.ContentType = "text/xml" 

    Set xmldom = Server.CreateObject("Microsoft.XMLDOM") 
    Set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP") 

Sub Test() 
    returnXML = "" 
    returnXML = returnXML & "<SOAP:Envelope xmlns:SOAP=""urn:schemas-xmlsoap-org:soap.v1"">" 
    returnXML = returnXML & "<SOAP:Body>" 
    returnXML = returnXML & "<message>" 
    returnXML = returnXML & "<theword>Hello</theword>" 
    returnXML = returnXML & "</message>" 
    returnXML = returnXML & "</SOAP:Body>" 
    returnXML = returnXML & "</SOAP:Envelope>" 

    Response.Write(returnXML)  
End Sub 

    Set xmldom = Nothing 
    Set xmlhttp = Nothing 
%> 

Je veux appeler ce service à partir de PHP en mode non-WSDL. Comment puis-je faire ceci? Comment puis-je appeler une fonction spécifique au sein du service?

Voici comment je suis en train d'appeler le service de PHP:

<?php 
    $client = new SoapClient(
       null, array(
         'location' => "http://server/folder/server.asp", 
         'uri'  => "http://test-uri/", 
         'style' => SOAP_DOCUMENT, 
         'use'  => SOAP_LITERAL, 
         'trace'=>1 
        ) 
     ); 

     $result = $client->Test(); 
     $client->__getLastResponse(); 
?> 

Merci ...

+0

Si vous avez le contrôle sur le serveur et le client, et qu'ils sont ASP et PHP, pourquoi ne pas simplement utiliser votre propre API de communication au lieu de SOAP? En outre, il existe des bibliothèques pour les services Web ASP SOAP classiques, je crois. – mellamokb

Répondre

0

Essayez d'utiliser $client->__soapCall(): http://us3.php.net/manual/en/soapclient.soapcall.php.

Je ne crois pas que vous pouvez utiliser des appels de méthode directe en mode non-WSDL.

Edit:

En outre, votre service Web dans .asp ne renvoie aucun contenu. Un webservice n'appelle pas réellement une méthode comme Test() sur le serveur. SOAP est simplement un protocole de communication agnostique en langage des appels et des paramètres. Le serveur doit effectivement prendre l'appel et l'appliquer à la méthode prévue appropriée.

+0

Merci ... J'ai essayé mais je n'ai toujours pas de succès. – Eric

Questions connexes