我有一个SOAP webservice,其中包含一个名为newSettings
的arrayofstrings字段,我正在尝试使用nusoap将其作为正常的字符串数组发送,但它不起作用,有什么建议吗?
我的代码:
$settings=array('password','composefontsize');
$param=array(
'EmailAddress'=> $userEmail,
'newSettings' => $settings
);
$response=$this->client->call("GetRequestedUserSettings",$param);
我的XML请求:
<?xml version="1.0" encoding="ISO-8859-1"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns6388="http://tempuri.org">
<SOAP-ENV:Body><GetRequestedUserSettings xmlns="http://tempuri.org/">
<AuthUserName>admin</AuthUserName>
<AuthPassword>XXXX</AuthPassword>
<EmailAddress>xxx@xxx</EmailAddress>
<requestedSettings></requestedSettings>
</GetRequestedUserSettings>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>"
更新:我用$settings = array('string' => $value1,...)
;
答案 0 :(得分:0)
您可以将soap调用包装在:
try {
// ...
} catch (SoapFault $e) {
echo $e->faultcode;
}
这样,如果您不满足WSDL规范或服务器超时,您将意识到问题。我相信这在使用SOAP时是必须的。