我对肥皂都很陌生,我对于我在做什么只有一点点了解。任何解决问题或找到关于什么的描述的尝试都没有结果。我似乎无法摆脱一个持续的唠叨异常:
SoapFault exception: [500] Username required in path\index.php:38<br />
Stack trace:<br />
#0 path\index.php(38): SoapClient->__soapCall('createPlayer', Array)<br />
#1 {main}
wsdl在这里 - http://www.laifacai.com/soap/gameprovider?wsdl
这是我的PHP。
$soap_options = array('trace' => 1, 'exceptions' => 1 );
$client = new SoapClient("http://www.laifacai.com/soap/gameprovider?wsdl", array( 'login' => "user", 'password' => "pass"));
var_dump ($client->__getFunctions ());
if (!class_exists('SoapClient')){
die ("You haven't installed the PHP-Soap module.");
} else {
try {
$res = $client->__soapCall('createPlayer', array('username'=>'mstest1', 'password'=>'12345678')));
} catch (SOAPFault $f) {
echo "<pre>" . $f . "</pre>";
}
}
基本上,我想在wsld上使用一些方法来处理。我虽然createPlayer会是最简单的,我可以根据我所学到的东西从那里开始,但我不能说得对,我不知道什么是错的,我找不到它。如果我传递一个空数组或一个完整的数组,总是相同的“用户名需要”,这样做很重要。
编辑:Wsld链接已编辑
答案 0 :(得分:0)
它说“需要用户名”,所以尝试提供它。目前,您只提供username
(请注意较低的上限)。 SOAP区分大小写。
另外,我认为你的
$res = $client->__soapCall('createPlayer',
array('username'=>'mstest1', 'password'=>'12345678')));
应该是
$SoapCallParameters = array('username'=>'mstest1', 'password'=>'12345678');
$res = $client->__soapCall('createPlayer',
array('parameters'=>$SoapCallParameters));
根据您的WSDL文档,您应该提供
array(
'agentid'
'username'
'password'
'currencycode'
'countrycode'
'nickname'
'fname'
'lname'
)
对于createPlayer,所以只是用户名和密码是不够的。