Ok mon serveur wsdl attend cela comme un appel:tête de savon php setenv correct
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:esc="http://escoles.webservice.jovtitus.dasc.gencat.net" xmlns:impl="http://impl.escoles.webservice.jovtitus.dasc.gencat.net">
<soapenv:Header/>
<soapenv:Body>
<esc:login>
<esc:in0>
<!--Optional:-->
<impl:password>++</impl:password>
<!--Optional:-->
<impl:user>++</impl:user>
</esc:in0>
</esc:login>
</soapenv:Body>
</soapenv:Envelope>
mais mon appel de savon php est égal à ceci:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://escoles.webservice.jovtitus.dasc.gencat.net">
<SOAP-ENV:Body>
<ns1:login>
<ns1:in0>
<password>+++</password>
<user>+++</user>
</ns1:in0>
</ns1:login>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
est pratiquement le même, mais je trouvé qu'il y a des espaces de noms que mon php ne s'applique pas. Pourquoi? Je ns1:
où il doit être esc:
et rien où il doit être impl:
quelqu'un peut me aider?
Je Teh y compris code php J'utilise:
$login = "+++++++";
$password = "+++++++++";
$enllaç = "http://preproduccio.www14.gencat.cat/jov_titus/AppJava/services/EscolesWebService";
$impl = 'http://impl.escoles.webservice.jovtitus.dasc.gencat.net';
$esc = 'escoles.webservice.jovtitus.dasc.gencat.net';
$aOptions = array("uri"=> $esc, 'location' => $enllaç,'trace'=>1);
class loginRequest {
private $password;
private $user;
public function __construct($password, $user)
{
$this->password = $password;
$this->user = $user;
}
}
$x = new loginRequest($password, $login);
$param = array('in0' => $x);
try {
$client = new SoapClient($enllaç.'?wsdl', $aOptions);
$clau = new SoapVar($param, SOAP_ENC_OBJECT, null, 'http://impl.escoles.webservice.jovtitus.dasc.gencat.net');
$result = $client->login($clau);
echo "REQUEST:\n" .htmlentities($client->__getLastRequest()). "<br /><br />";
} catch (SoapFault $fault) {
trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR);
}
Voici comment mappel l'appel de savon: $ clau = new SoapVar ($ param, SOAP_ENC_OBJECT, null, 'http://impl.escoles.webservice.jovtitus.dasc.gencat.net'); $ resultat = $ client-> login ($ clau); – david
J'ai modifié la question ci-dessus pour ajouter plus d'informations concernant ma solution. J'espère que ça aide – david