PHP SOAP WSDL函数列表

问题描述:

我是肥皂编程的新手,我被困在看起来很简单的东西上,但我不怎么关注......PHP SOAP WSDL函数列表

这是我的情况。我问WSDL SOAP服务器的功能列表,我使用__getFunctions() ..我得到这个:

array(10) { [0]=> string(68) "inserirClaustreResponse inserirClaustre(inserirClaustre $parameters)" [1]=> string(56) "inserirCursResponse inserirCurs(inserirCurs $parameters)" [2]=> string(38) "loginResponse login(login $parameters)" [3]=> string(68) "inserirPropostaResponse inserirProposta(inserirProposta $parameters)" [4]=> string(71) "inserirCalendariResponse inserirCalendari(inserirCalendari $parameters)" [5]=> string(59) "inserirPreusResponse inserirPreus(inserirPreus $parameters)" [6]=> string(80) "inserirAprofitamentResponse inserirAprofitament(inserirAprofitament $parameters)" [7]=> string(62) "inserirAlumneResponse inserirAlumne(inserirAlumne $parameters)" [8]=> string(62) "inserirHorariResponse inserirHorari(inserirHorari $parameters)" [9]=> string(41) "logoutResponse logout(logout $parameters)" } 

如果我使用__getTypes(),我得到这个:

[13]=> string(52) "struct LoginInfo { string password; string user; }" 

好吧,当我做$client->login(array('password'=>'pass', 'user'=>'admin'));

如果我做了__getLastRequest()

我认为这对我的要求:

<?xml version="1.0" encoding="UTF-8"?> 
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns:ns1="http://***masked***.net"> 
<SOAP-ENV:Body> 
<ns1:login> 
<ns1:in0 xsi:nil="true"/> 
</ns1:login> 
</SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

我看不到密码和用户内部<ns1:login> ...我没有收到和错误,但服务器不接受,因为在功能登录没有数据...

+0

您有可能发布wsdl的相关部分 - 定义上述功能的部分?用__getFunctions()的var_dump编辑的 – 2010-11-08 18:43:27

+0

: – david 2010-11-09 09:15:52

+0

和url是http://preproduccio.www14.gencat.cat/jov_titus/AppJava/services/EscolesWebService?wsdl – david 2010-11-09 09:23:00

代替使用参数数组你应该建立其代表requestParameters的作为属性的类:

class Login{ 
public $password; 
public $user; 

function __construct() { 
    $this->password = "pass"; 
    $this->user = "admin"; 
} 
} 

然后初始化类和作为放慢参数添加对象发送给SOAP-请求:

$login = new Login(); 
$client->login(array($login));