PDA

View Full Version : [PHP] Interrogare un web service tramite il suo wsdl


flava137
03-06-2011, 13:42
Ciao ragazzi. Devo interrogare un web service per l'autenticazione di un utente. Io devo inviargli email e password di un utente invocando un metodo di questo wsdl e il wsdl mi deve rispondere con dei dati.

Il metodo che invoco per inviargli i dati è questo

<element name="Authenticate">
<complexType>
<sequence>
<element name="username" type="xsd:string"/>
<element name="password" type="xsd:string"/>
</sequence>
</complexType>
</element>

quindi come potete vedere bisogna inviare due stringhe al metodo Authenticate e io lo faccio cosi :

<?php

include("lib/nusoap.php");

$wsdl = //qui inserisco l'indirizzo del wsdl
//$con= new SoapClient($wsdl);
$soap_client = new nusoap_client($wsdl./qui inserisco il target namespace, true, null, null, null, null);
$err = $soap_client->getError();
if ($err) {
echo $err;
die();
}

$username="tizio";
$password="caio";

$param = array("username" => $username, "password" => $password);
$result = $soap_client->call("Authenticate", $param, "", "");

ora il mio problema è farmi restituire i parametri dal metodo AuthenticateResponse che è fatto cosi :
<element name="AuthenticateResponse">
<complexType>
<sequence>
<element name="allowed" type="xsd:string"/>
<element name="matricola" type="xsd:string"/>
<element name="cf" type="xsd:string"/>
<element name="email" type="xsd:string"/>
</sequence>
</complexType>
</element>

come devo fare? vi ringrazio moltissimo

filosg4ng4
04-06-2011, 01:05
Ciao

potrei sbagliarmi, ma

$AuthenticateResponse = simplexml_load_string($result);

$parametri = array(
$AuthenticateResponse->allowed,
$AuthenticateResponse->matricola,
$AuthenticateResponse->cf,
$AuthenticateResponse->email
);

Ciao,
Filo