Problème accès webservice SOAP

Petit nouveau ! | 4 Messages

17 févr. 2012, 14:12

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 !

Eléphant du PHP | 179 Messages

17 févr. 2012, 15:24

Tu as essayé avec la class SoapServer ?

ViPHP
xTG
ViPHP | 7331 Messages

17 févr. 2012, 15:54

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));

Petit nouveau ! | 4 Messages

20 févr. 2012, 10:57

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 ?

Giova
Invité n'ayant pas de compte PHPfrance

22 juin 2012, 21:33

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.