Page 1 sur 1

Problème accès webservice SOAP

Posté : 17 févr. 2012, 14:12
par regis67
Bonjour,

J'accède actuellement à ce webservice à l'aide de Nusoap qui fonctionne bien :

$client = new nusoap_client("https://soap.business.tomtom.com/v1.8/m ... rvice?wsdl");

Je souhaite désormais y accéder à l'aide des fonctions Soap intégrées à PHP (pour des problèmes de compatibilité de nusoap avec certaines versions) :

$client = new SoapClient("https://soap.business.tomtom.com/v1.8/m ... rvice?wsdl");

Dans ce cas j'obtiens systématiquement l'erreur suivante :

SOAP-ERROR: Parsing WSDL: Could not find any usable binding services in WSDL

J'ai tenté plusieurs déclarations proposées sur la doc de cette fonction

exemple : ($client = new SoapClient("some.wsdl", array('login' => "some_name",
'password' => "some_password"));

Mais le problème subsiste, auriez vous une idée ? Merci d'avance !

Re: Problème accès webservice SOAP

Posté : 17 févr. 2012, 15:24
par Thibaud C
Tu as essayé avec la class SoapServer ?

Re: Problème accès webservice SOAP

Posté : 17 févr. 2012, 15:54
par xTG
C'est quelle version de SOAP ?
Car de base il utilise la version 1.1 donc si ton webservice est en 1.2 il faut lui dire dans le constructeur.

exemple DOC :
$client = new SoapClient("some.wsdl", array('soap_version'   => SOAP_1_2));

Re: Problème accès webservice SOAP

Posté : 20 févr. 2012, 10:57
par regis67
C'est bien en SOAP 1.2 j'avais déjà testé en lui mettant dans le constructeur la version mais ça ne fonctionne pas mieux.

J'ai essayé avec un webservice gratuit getWhois et ça fonctionne :

$client = new SoapClient("http://www.webservicex.net/whois.asmx?WSDL");

$resultat = $client->getWhoIs(array("HostName" => "www.google.fr"));

Le problème est peut être lié au fait que l'url est en HTTPS (sans authentification).

Je n'ai pas bien compris la réponse avec la class SoapServer car je n'ai pas la main sur le serveur y-a'il quelque chose à faire sur le client avec cette classe ?

Re: Problème accès webservice SOAP

Posté : 22 juin 2012, 21:33
par Giova
Salut,

Je viens d'avoir le même problème que j'ai résolu.
Mon client : un serveur unix

La cause du problème : pour mon service, j'avais choisi un mauvais binding : net.tcp
php ne supportait pas ce mode de transport.
J'ai donc basculé sur du basicHttpBinding, et là ça passe.